#ifndef __INC_POS_PROTO_PUTIL2_H
#define __INC_POS_PROTO_PUTIL2_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>pUtil2.h<<   26 Jan 1997    19:05:28 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_LIST_H
#include <pExec/List.h>
#endif
#ifndef __INC_POS_PDOS_DOSTYPES_H
#include <pDOS/DosTypes.h>
#endif




#ifdef __cplusplus
extern "C" {
#endif

/*------ TagItem --------------------------------------------------------*/
struct pOS_TagItem* pOS_NextTagItem(_R_A0 const struct pOS_TagItem**);
struct pOS_TagItem* pOS_FindTagItem(_R_D0 ULONG tag,_R_A0 const struct pOS_TagItem*);
ULONG pOS_FindTagData(_R_D0 ULONG tag,_R_A0 const struct pOS_TagItem*,_R_D1 ULONG Default);
VOID  pOS_MapTagItems(_R_A0 const struct pOS_TagItem*,_R_A1 struct pOS_TagItem*);
ULONG pOS_CountTags(_R_A0 const struct pOS_TagItem*);
struct pOS_TagItem* pOS_CopyTags(_R_A0 const struct pOS_TagItem* srcTagList,
                          _R_A1 struct pOS_TagItem* dstTagList,_R_D0 ULONG count);


/*------ Txt --------------------------------------------------------*/
CHAR *pOS_SearchSxTxtA(_R_A0 const dosname_t* fileName,_R_A1 CHAR *buf,
                       _R_D0 size_t bufSize,_R_A2 const struct pOS_TagItem*);

CHAR  pOS_ToLower(_R_D0 CHAR);
CHAR  pOS_ToUpper(_R_D0 CHAR);
SLONG pOS_Stricmp(_R_A0 const CHAR*,_R_A1 const CHAR*);
SLONG pOS_Strnicmp(_R_A0 const CHAR*,_R_A1 const CHAR*,_R_D0 ULONG);



/*------ Hash --------------------------------------------------------*/
VOID pOS_ConstructHash(_R_A0 struct pOS_HashList*,_R_D0 ULONG num);
VOID pOS_DestructHash(_R_A0 struct pOS_HashList*);
__ARID__ struct pOS_HashList* pOS_CreateHash(_R_D0 ULONG num);
VOID pOS_DeleteHash(_R_A0 __ARID__ struct pOS_HashList*);
__ARID__ struct pOS_HashNode* pOS_CreateHashNode(_R_A0 struct pOS_HashList*,_R_A1 const VOID* data);
VOID pOS_DeleteHashNode(_R_A0 struct pOS_HashList*,_R_A1 __ARID__ struct pOS_HashNode*);
VOID pOS_AddHashNode(_R_A0 struct pOS_HashList*,_R_A1 struct pOS_HashNode*);
VOID pOS_RemHashNode(_R_A0 struct pOS_HashList*,_R_A1 struct pOS_HashNode*);
struct pOS_HashNode* pOS_MatchHash(_R_A0 const struct pOS_HashList*,_R_A1 const VOID *data);


/*------ Prefs --------------------------------------------------------*/
VOID pOS_DeletePrefsHandler(_R_A0 __ARID__ struct pOS_PrefsHandler*);
__ARID__ struct pOS_PrefsHandler* pOS_CreatePrefsHandlerA(_R_A0 const struct pOS_TagItem*);
VOID pOS_AddPrefsHandler(_R_A0 struct pOS_PrefsHandler*);
VOID pOS_RemPrefsHandler(_R_A0 struct pOS_PrefsHandler*);
VOID pOS_TouchPrefsHandler(_R_A0 struct pOS_PrefsHandler*);
VOID pOS_RunPrefsHandler(VOID);





CHAR *pOS_SearchSxTxt(_R_A0 const dosname_t* fileName,_R_A1 CHAR *buf,
                      _R_D0 size_t bufSize,ULONG tag,...);


#ifdef __cplusplus
}
#endif

#endif
