//
// lib.h
//
// lib: Contains typical declarations and header inclusions used by
// most sources in this directory.
//
// Part of the ht://Dig package
// Copyright (c) 1999-2004 The ht://Dig Group
// For copyright details, see the file COPYING in your distribution
// or the GNU Library General Public License (LGPL) version 2 or later
//
//
// $Id: lib.h,v 1.16 2004/05/28 13:15:21 lha Exp $
//
#ifndef _lib_h
#define _lib_h
#ifndef _MSC_VER /* _WIN32 */
#include "clib.h"
#endif
#include
#ifdef _MSC_VER /* _WIN32 */
#include "dirent_local.h"
#define S_ISDIR(v) ((v)&_S_IFDIR)
#define S_ISREG(v) ((v)&_S_IFREG)
#else
#include // for scandir
#endif
#ifdef _MSC_VER /* _WIN32 */
#include
#include
#define S_IFIFO _S_IFIFO // pipe
#define S_IFBLK 0060000 // block special
#define S_IFLNK 0120000 // symbolic link
#define S_IFSOCK 0140000 // socket
#define S_IFWHT 0160000 // whiteout
#define R_OK 02
#define popen _popen
#define pclose _pclose
#define lstat stat
#define readlink(x,y,z) {-1}
#define sleep(t) _sleep((t) * 1000)
#endif
#if TIME_WITH_SYS_TIME
# include
# include
#else
# if HAVE_SYS_TIME_H
# include
# else
# include
# endif
#endif
//
// Other defines used throughout the library
//
#define OK 0
#define NOTOK (-1)
//
// To get rid of inconsistencies between different machines we will ALWAYS
// use our own version of the following routines
//
int mystrcasecmp(const char *, const char *);
int mystrncasecmp(const char *, const char *, int);
//
// The standard strstr() function is limited in that it does case-sensitive
// searches. This version will ignore case.
//
const char *mystrcasestr(const char *s, const char *pattern);
//
// Too many problems with system strptime() functions... Just use our own
// version of it.
//
char *mystrptime(const char *buf, const char *fmt, struct tm *tm);
//
// timegm() is quite rare, so provide our own.
//
extern "C" time_t Httimegm(struct tm *tm);
#endif