#ifndef __EXTCDECL_H
#define __EXTCDECL_H

#ifndef __EXTCTYPE_H
#include <extctype.h>
#endif

/* @DES Funzioni C esterne. */

extern "C"  {

  /* @DPUB */
  extern SecDef fdir[2], rdir[2];
  extern int dirfl[2], recfl[2];
  extern short    formflag;
  extern int      SerNo;
  extern word     ModAd;
  extern word     _int_tab0[4];
  extern PathSt   __ptprf;

  // Guy moved these outside extern
  extern PathSt   cprefix;

  /* @END */

  /* @FPUB */       
// definite in isam.cpp
  int hashfun(const char *);
  int findfld(const RecDes *, const char *);   

//  TDitta *CGetDitta(char *);
  short CGetAut(int );
  char *CGetConf(int );
  word getser(void);
  void CVerify(SecDef *,char *);
  void COpen(SecDef *,char *, unsigned, unsigned, unsigned);
  void CCreate(SecDef *,char *,unsigned ,unsigned ,RecNoType);
  void CChsize(SecDef *,char *,unsigned ,unsigned ,RecNoType);
  void CClose(SecDef *);
  void CDelete(SecDef *,char *);
  void CRead(SecDef *, RecType, RecNoType, unsigned );
  void CLockRec(SecDef *, RecNoType, unsigned);
  void CWrite(SecDef *,RecType,RecNoType ,unsigned );
  int excllock(char *, short);
  int exclunlock(char *, short);
  void COpenDir(int, int);
  void CCloseDir(int);
  void COpenFile(int, FileDes *, int, int);
  void CCloseFile(int, FileDes *, int);
  void CGetFile(int,  FileDes *, int, int);
  void CPutFile(int,  FileDes *, int);
  void zerofdes(FileDes *);
  void COpenRecDir(int, int);
  void CCloseRecDir(int);
  void CGetRec(int, RecDes *, int);
  void CPutRec(int, RecDes *, int);
  void zerordes(RecDes *);
  word setrdes(RecDes *);
  char *CAddPref(const char *);
  const char* CGetCampoIni(void);
  const char* CGetPref(void);
  void  CPutPref(const char *);
  char  *CInsPref(char *, int);
  int init_sort(struct s_prm *);
  void sort(const char *);
  char *sort_op(void);
  void sort_stats(void);

  /* @END */
};

#endif // __EXTCDECL_H