⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 support.h

📁 harvest是一个下载html网页得机器人
💻 H
字号:
/*   Support - Provides some big and little endian abstraction functions.   Copyright (C) 1999  Roberto Arturo Tena Sanchez     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 *//*   Arturo Tena <arturo@directmail.org> *//*  Some code was from Caolan, but I have replaced all the code,  now all code here is mine, so I changed copyright announce in cole-1.0.0.     Arturo Tena */#ifndef COLE_SUPPORT_H#define COLE_SUPPORT_H#ifdef __cplusplusextern "C" {#endif#include <ctype.h>#include <stdio.h>#if !(defined( __BORLANDC__ ) || defined( __WIN32__ ))#include "config.h"/* F32 */#if SIZEOF_FLOAT == 4#define F32     float#elif SIZEOF_DOUBLE == 4#define F32     double#elif SIZEOF_LONG_DOUBLE == 4#define F32     long double#else#error No 4 byte length float type found.#endif/* F64 */#if SIZEOF_DOUBLE == 8#define F64     double#elif SIZEOF_LONG_DOUBLE == 8#define F64     long double#else#error No 8 byte length float type found.#endif/* U8 */#if SIZEOF_UNSIGNED_CHAR == 1#define U8      unsigned char#else#error No 1 byte length type found. #error Char is not a byte! Mmmh... maybe you need another compiler.#endif/* U16 */#if SIZEOF_UNSIGNED_INT == 2#define U16	unsigned int#elif SIZEOF_UNSIGNED_SHORT == 2#define U16     unsigned short#elif SIZEOF_UNSIGNED_LONG == 2#define U16     unsigned long#else#error No 2 byte length type found.#endif/* S16 */#if SIZEOF_UNSIGNED_INT == 2#define S16     signed int#elif SIZEOF_UNSIGNED_SHORT == 2#define S16     signed short#elif SIZEOF_UNSIGNED_LONG == 2#define S16     signed long#else#error No 2 byte length type found.#endif /* U32 */#if SIZEOF_UNSIGNED_LONG  == 4#define U32     unsigned long#elif SIZEOF_UNSIGNED_INT == 4#define U32     unsigned int#elif SIZEOF_UNSIGNED_LONG_LONG == 4#define U32     unsigned long long#else#error No 4 byte length type found.#endif/* S32 */#if SIZEOF_UNSIGNED_LONG  == 4#define S32     signed long#elif SIZEOF_UNSIGNED_INT == 4#define S32     signed int#elif SIZEOF_UNSIGNED_LONG_LONG == 4#define S32     signed long long#else#error No 4 byte length type found.#endif#else/* Borland or Wintel constants */#define F32 float#define F64 double#define U8 unsigned char#define U16 unsigned short#define S16 signed short#define U32 unsigned long#define S32 signed long#endifU16 fil_sreadU16 (U8 * in);U32 fil_sreadU32 (U8 * in);F64 fil_sreadF64 (U8 * in);void fil_swriteU16 (U8 * dest, U16 * src);void fil_swriteU32 (U8 * dest, U32 * src);void __cole_dump (void *_m, void *_start, int length, char *msg);#define verbose_return()               \  {                                    \    verbose_wonl ("returning from ");  \    verbose_wonl (__FILE__);           \    verbose_wonl (":");                \    verbose_d (__LINE__);              \  }#define test(t,retval)    \  {                       \    if (!(t))             \    {                     \      verbose_return ();  \      return retval;      \    }                     \  }#define test_exitf(t,retval,func)  \  {                                \    if (!(t))                      \    {                              \	 func;                        \      verbose_return ();           \      return (retval);             \    }                              \  }#define test_call(t,typeretval)  \  {                              \    typeretval retval;           \    retval = (t);                \    if (retval)                  \    {                            \      verbose_return ()          \	 return (retval);           \    }                            \  }#define test_call_exitf(t,typeretval,func)  \  {                                         \    typeretval retval;                      \    retval = (t);                           \    if (retval)                             \    {                                       \      func;                                 \      verbose_return ()                     \      return (retval);                      \    }                                       \  }#define report_bug(prog)                                                 \  {                                                                      \    fprintf (stderr, #prog": A bug have been found: %s:%d\n"#prog        \             ":Please, download a most recent version and try again\n",  \             __FILE__, __LINE__);                                        \  }#define assert_return(prog,t,retval)                                  \  {                                                                   \    if (!(t))                                                         \    {                                                                 \      fprintf (stderr, #prog": Condition "#t" is not valid: %s:%d\n", \				   __FILE__, __LINE__);                           \      report_bug (prog);                                              \      return (retval);                                                \    }                                                                 \  }#ifdef VERBOSE#define verbose_d(n) { printf ("%d\n", n); }#define verbose(s) { puts(s); }#define verbose_wonl(s) { printf (s); }#define verboseU8(expr)  { printf (#expr " = 0x%02x\n", expr); }#define verboseU16(expr) { printf (#expr " = 0x%04x\n", expr); }#define verboseU32(expr) { printf (#expr " = 0x%08x\n", expr); }#define verboseS(expr) { printf (#expr " = %s\n", expr); }#define verboseS_wonl(expr) { printf (#expr " = %s", expr); }#define warning(t) { if (!(t)) printf ("warning: %s is false\n", #t); }#else /* ifndef VERBOSE */#define verbose_d(n) ;#define verbose(s) ;#define verbose_wonl(s) ;#define verboseU8(expr) ;#define verboseU16(expr) ;#define verboseU32(expr) ;#define verboseS(expr)#define verboseS_wonl(expr)#define warning(t)#endif /* ifdef VERBOSE */#ifdef VERBOSE#define verboseU32Array(array,len)                              \  {                                                             \    U32 temp;                                                   \    for (temp = 0; temp < len; temp++)                          \      printf (#array "[%lu] = 0x%08lx\n", temp, array [temp]);  \  }#else#define verboseU32Array(array,len)#endif#define verboseU8Array_force(rec,len,reclen)			\	__cole_dump ((rec), (rec), ((len)*(reclen)), "");#ifdef VERBOSE#define verboseU8Array(rec,len,reclen) verboseU8Array_force(rec,len,reclen)#else#define verboseU8Array(rec,len,reclen)#endif#ifdef __cplusplus}#endif#endif /* COLE_SUPPORT_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -