#ifndef __CSORT_H
#define __CSORT_H

#ifndef __CFILES_H
#include        "cfiles.h"
#endif

#define NOFLDS 10
#define MOSTMEM  51200
#define LEASTMEM 10240

struct s_prm {
  int rc_len;
  struct {
    int f_pos;
    int f_len;
    char ad;

  } s_fld [NOFLDS];
};
struct bp       {       
  char *rc;
  /* @(!) 2.3.00.112 */
  unsigned rbuf;
  unsigned rdsk;
  /* @(:) 2.3.00.112 */
};

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
  /*----------------------- FUNZIONI VISIBILI PRIMA PARTE ---------------------*/

  int init_sort(struct s_prm *);                                 /* Initialize the sort */
  void sort(char *);                                   /* Pass records to Sort */
  char *sort_op(void);                   /* Retrieve sorted records */
  void sort_stats(void);                 /* Display sort statistics */

  /*----------------------- FUNZIONI VISIBILI SECONDA PARTE -------------------*/

  void initsortfield (void);

  /* azzera l'elenco dei campi in base a cui eseguire il sort */
  /* ritorna 0 se tutto ok, -1 se chiamata piu' di NOFLDS volte dopo l'ultimo initsortfield */
  /* ritorna 0 se tutto ok, -1 se non c'e' sufficiente memoria per procedere */

  /*---------------------------------------------------------------------------*/
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* __CSORT_H */
