#ifndef __CSORT_H
#define __CSORT_H

#define NOFLDS 10

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 */