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

📄 htvms_waisui.h

📁 用于linux和其他unix下面的
💻 H
📖 第 1 页 / 共 2 页
字号:
/*							HTVMS_WAISUI.h****	Adaptation for Lynx by F.Macrides (macrides@sci.wfeb.edu)****	31-May-1994 FM	Initial version.*/#ifndef HTVMSWAIS_H#define HTVMSWAIS_H#ifndef HTUTILS_H#include <HTUtils.h>#endifvoid	log_write PARAMS((char *));/***	Routines originally from Panic.h -- FM****----------------------------------------------------------------------*/void	panic (char* format,...); /*----------------------------------------------------------------------*//***	Routines originally from CUtil.h -- FM****----------------------------------------------------------------------*//* types and constants */#ifndef boolean#define boolean unsigned long#endif /* boolean */#ifndef true#define true 	(boolean)1L#endif /* true */#ifndef false#define false 	(boolean)0L   /* used to be (!true), but broke 				 some compilers */#endif /* false */#ifndef TRUE#define TRUE	true#endif /* TRUE */#ifndef FALSE#define FALSE	false#endif /* FALSE *//*----------------------------------------------------------------------*//* functions *//* enhanced memory handling functions - don't call them directly, use the   macros below */void	fs_checkPtr PARAMS((void* ptr));void*	fs_malloc PARAMS((size_t size));void*	fs_realloc PARAMS((void* ptr,size_t size));void	fs_free PARAMS((void* ptr));char* 	fs_strncat PARAMS((char* dst,char* src,size_t maxToAdd,size_t maxTotal));/* macros for memory functions.  call these in your program.  */#define s_checkPtr(ptr) 	fs_checkPtr(ptr)#define s_malloc(size)	      	fs_malloc(size)#define s_realloc(ptr,size)	fs_realloc((ptr),(size))#define s_free(ptr)		{ fs_free((char*)ptr); ptr = NULL; }#define s_strncat(dst,src,maxToAdd,maxTotal)	fs_strncat((dst),(src),(maxToAdd),(maxTotal))char* 	s_strdup PARAMS((char* s));#define IS_DELIMITER	1#define	NOT_DELIMITER	!IS_DELIMITERchar char_downcase PARAMS((unsigned long ch));char *string_downcase PARAMS((char* word));/*----------------------------------------------------------------------*//***	Routines originally from ZUtil.c -- FM****----------------------------------------------------------------------*//* Data types / constants *//* bytes to leave for the header size info */#define HEADER_LEN	(size_t)2 typedef long pdu_type;#define	initAPDU			(pdu_type)20#define	initResponseAPDU		(pdu_type)21#define	searchAPDU			(pdu_type)22#define	searchResponseAPDU		(pdu_type)23#define	presentAPDU			(pdu_type)24#define	presentResponseAPDU		(pdu_type)25#define	deteteAPDU			(pdu_type)26#define	deleteResponseAPDU		(pdu_type)27#define	accessControlAPDU		(pdu_type)28#define	accessControlResponseAPDU	(pdu_type)29#define	resourceControlAPDU		(pdu_type)30#define	resourceControlResponseAPDU	(pdu_type)31typedef struct any {	/* an any is a non-ascii string of characters */	unsigned long	size; 	char*			bytes;	} any;	typedef any	bit_map; 	/* a bit_map is a group of packed bits */typedef unsigned long data_tag;#define DT_PDUType			(data_tag)1 	#define	DT_ReferenceID			(data_tag)2#define	DT_ProtocolVersion		(data_tag)3#define	DT_Options			(data_tag)4#define	DT_PreferredMessageSize		(data_tag)5#define	DT_MaximumRecordSize		(data_tag)6#define	DT_IDAuthentication		(data_tag)7#define	DT_ImplementationID		(data_tag)8#define	DT_ImplementationName		(data_tag)9#define	DT_ImplementationVersion	(data_tag)10#define	DT_UserInformationField		(data_tag)11#define	DT_Result			(data_tag)12#define	DT_SmallSetUpperBound		(data_tag)13#define	DT_LargeSetLowerBound		(data_tag)14#define	DT_MediumSetPresentNumber	(data_tag)15#define	DT_ReplaceIndicator		(data_tag)16#define	DT_ResultSetName		(data_tag)17#define	DT_DatabaseNames		(data_tag)18#define	DT_ElementSetNames 		(data_tag)19#define	DT_QueryType			(data_tag)20#define	DT_Query			(data_tag)21#define	DT_SearchStatus			(data_tag)22#define	DT_ResultCount			(data_tag)23#define	DT_NumberOfRecordsReturned	(data_tag)24#define	DT_NextResultSetPosition	(data_tag)25#define	DT_ResultSetStatus		(data_tag)26#define	DT_PresentStatus		(data_tag)27#define	DT_DatabaseDiagnosticRecords	(data_tag)28#define	DT_NumberOfRecordsRequested	(data_tag)29#define	DT_ResultSetStartPosition	(data_tag)30#define	DT_ResultSetID			(data_tag)31#define	DT_DeleteOperation		(data_tag)32#define	DT_DeleteStatus			(data_tag)33#define	DT_NumberNotDeleted		(data_tag)34#define	DT_BulkStatuses			(data_tag)35#define	DT_DeleteMSG			(data_tag)36#define	DT_SecurityChallenge		(data_tag)37#define	DT_SecurityChallengeResponse	(data_tag)38#define	DT_SuspendedFlag		(data_tag)39#define	DT_ResourceReport		(data_tag)40#define	DT_PartialResultsAvailable	(data_tag)41#define	DT_ContinueFlag			(data_tag)42#define	DT_ResultSetWanted		(data_tag)43#define UNUSED	-1/* number of bytes required to represent the following sizes in compressed    integer format */#define CompressedInt1Byte	128 		/* 2 ^ 7 */#define CompressedInt2Byte	16384 		/* 2 ^ 14 */#define CompressedInt3Byte	2097152 	/* 2 ^ 21 *//* others may follow ... *//* types of query */#define QT_0	"0"	/* query whose non-standard format has been agreed upon			   client and server *//* values for InitAPDU option element */#define	WILL_USE		TRUE#define WILL_NOT_USE		FALSE#define WILL_SUPPORT		TRUE#define WILL_NOT_SUPPORT	FALSE/* values for InitResponseAPDU result element */#define ACCEPT	TRUE#define REJECT	FALSE/* values for SearchResponseAPDU search status element */#define	SUCCESS	0 /* intuitive huh? */#define FAILURE	1/* values for SearchResponseAPDU result set status element */#define	SUBSET	1#define INTERIM	2#define NONE	3/* values for SearchResponseAPDU present status element *//* SUCCESS already defined */#define PARTIAL_1	1#define PARTIAL_2	2#define PARTIAL_3	3#define PARTIAL_4	4#define PS_NONE		5 /* can't use NONE since it was used by result 			     set status */#define DIAGNOSTIC_CODE_SIZE	(size_t)3typedef struct diagnosticRecord  { boolean	SURROGATE;   char		DIAG[DIAGNOSTIC_CODE_SIZE];   char* 	ADDINFO; } diagnosticRecord;#define D_PermanentSystemError	       "S1"#define D_TemporarySystemError	       "S2"#define D_UnsupportedSearch	       "S3"#define D_TermsOnlyStopWords	       "S5"#define D_TooManyArgumentWords	       "S6"#define D_TooManyBooleanOperators      "S7"#define D_TooManyTruncatedWords	       "S8"#define D_TooMany IncompleteSubfields  "S9"#define D_TruncatedWordsTooShort       "SA"#define D_InvalidFormatForRecordNumber "SB"#define D_TooManyCharactersInSearch    "SC"#define D_TooManyRecordsRetrieved      "SD"#define D_PresentRequestOutOfRange     "SF"#define D_SystemErrorInPresentRecords  "SG"#define D_RecordNotAuthorizedToBeSent  "SH"#define D_RecordExceedsPrefMessageSize "SI"#define D_RecordExceedsMaxRecordSize   "SJ"#define D_ResultSetNotSuppAsSearchTerm "SK"#define D_OnlyOneRsltSetAsSrchTermSupp "SL"#define D_OnlyANDingOfASnglRsltSetSupp "SM"#define D_RsltSetExistsNoReplace       "SN"#define D_ResultSetNamingNotSupported  "SO"#define D_CombinationDatabasesNotSupp  "SP"#define D_ElementSetNamesNotSupported  "SQ"#define D_ElementSetNameNotValid       "SR"#define D_OnlyASingleElmntSetNameSupp  "SS"#define D_ResultSetDeletedByTarget     "ST"#define D_ResultSetIsInUse             "SU"#define D_DatabasesIsLocked            "SV"#define D_TerminatedByNoContinueResp   "SW"#define D_ResultSetDoesNotExist        "SX"#define D_ResExNoResultsAvailable      "SY"#define D_ResExUnpredictableResults    "SZ"#define D_ResExValidSubsetOfResults    "T1"#define D_AccessControlFailure         "T2"#define D_SecurityNotIssuedReqTerm     "T3"#define D_SecurityNotBeIssuedRecNotInc "T4"/*----------------------------------------------------------------------*//* for internal error handling */extern char* readErrorPosition; 	/* pos where buf stoped making sense *//* the following are macros so that they can return OUT of the function   which calls them */ #define RETURN_ON_NULL(var) 					\	if (var == NULL) 				     	\	  return(NULL); /* jump out of caller */#define REPORT_READ_ERROR(pos) 					\	{ readErrorPosition = (pos);				\	  return(NULL); /* jump out of caller */		\    }#define CHECK_FOR_SPACE_LEFT(spaceNeeded,spaceLeft)		\	{ if (*spaceLeft >= spaceNeeded)			\	    (*spaceLeft) -= spaceNeeded;			\	  else							\	   { *spaceLeft = 0; 					\	     return(NULL); /* jump out of the caller */ 	\	   }							\	}/*----------------------------------------------------------------------*/diagnosticRecord* makeDiag PARAMS((boolean surrogate,char* code,char* addInfo));void freeDiag PARAMS((diagnosticRecord* diag));char* writeDiag PARAMS((diagnosticRecord* diag,char* buffer,long* len));char* readDiag PARAMS((diagnosticRecord** diag,char* buffer));char* writeCompressedInteger PARAMS((unsigned long num,char* buf,long* len));char* readCompressedInteger PARAMS((unsigned long *num,char* buf));char* writeCompressedIntWithPadding PARAMS((unsigned long num,unsigned long size,					 char* buffer,long* len));unsigned long writtenCompressedIntSize PARAMS((unsigned long num));char* writeTag PARAMS((data_tag tag,char* buf,long* len));char* readTag PARAMS((data_tag* tag,char* buf));data_tag peekTag PARAMS((char* buf));unsigned long writtenTagSize PARAMS((data_tag tag));any* makeAny PARAMS((unsigned long size,char* data));void freeAny PARAMS((any* a));any* duplicateAny PARAMS((any* a));char* writeAny PARAMS((any* a,data_tag tag,char* buffer,long* len));char* readAny PARAMS((any** anAny,char* buffer));unsigned long writtenAnySize PARAMS((data_tag tag,any* a));any* stringToAny PARAMS((char* s));char* anyToString PARAMS((any* a));unsigned long writtenStringSize PARAMS((data_tag tag,char* s));any* longToAny PARAMS((long Num));long anyToLong PARAMS((any* a));char* writeString PARAMS((char* s,data_tag tag,char* buffer,long* len));char* readString PARAMS((char** s,char* buffer));bit_map* makeBitMap (unsigned long numBits,...);void freeBitMap PARAMS((bit_map* bm));boolean bitAtPos PARAMS((unsigned long pos,bit_map* bm));char* writeBitMap PARAMS((bit_map* bm,data_tag tag,char* buffer,long* len));char* readBitMap PARAMS((bit_map** bm,char* buffer));char* writeByte PARAMS((unsigned long byte,char* buf,long* len));char* readByte PARAMS((unsigned char* byte,char* buf));char* writeBoolean PARAMS((boolean flag,char* buf,long* len));char* readBoolean PARAMS((boolean* flag,char* buf));char* writePDUType PARAMS((pdu_type pduType,char* buf,long* len));char* readPDUType PARAMS((pdu_type* pduType,char* buf));pdu_type peekPDUType PARAMS((char* buf));

⌨️ 快捷键说明

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