#ifndef H_ED_FSTR_20041203104754
#define H_ED_FSTR_20041203104754

#ifdef __cplusplus
extern "C"
{
#endif

/* ---------------------------------------------------------------------
   (c) ED 2004-2005
   Project      : CLIB - Flexible STRing
   Function     : Flexible string manager
   Module       : FSTR
   File         : fstr.h
   Created      : 03-12-2004
   Modified     : 30-08-2005
   --------------------------------------------------------------------- */

/* ---------------------------------------------------------------------
   Log

   1.3 30-08-2005 Added fstr_serr()
   1.2 15-12-2004 Debug enlarge()
   1.1 14-12-2004 Added fstr_add(), fstr_del() and fstr_len()
   1.0 03-12-2004 Initial version
   0.0 03-12-2004 Created

   --------------------------------------------------------------------- */
#include <stddef.h>

/* macros ============================================================== */

/* constants =========================================================== */

   typedef enum
   {
      FSTR_OK,

#define ITEM(n_, s_)\
   FSTR_ERR_##n_,

#include "ed/inc/fstr_err.itm"

#undef ITEM

      FSTR_ERR_NB
   }
   fstr_err_e;

/* types =============================================================== */

/* structures ========================================================== */

   typedef struct fstr fstr_s;

/* functions =========================================================== */

/* Identification */
   char const *fstr_sid (void);
   char const *fstr_sver (void);
   char const *fstr_serr (fstr_err_e err);

/* Dynamic constructor / destructor */
   fstr_s *fstr_create (size_t len);
   void fstr_delete (fstr_s * self);

/* Input functions */
   fstr_err_e fstr_clr (fstr_s * self);

   fstr_err_e fstr_cat (fstr_s * self, char const *s);
   char *fstr_str (fstr_s * self);
   size_t fstr_len (fstr_s * self);
   char *fstr_remove (fstr_s * self);

   fstr_err_e fstr_add (fstr_s * self, int c);
   fstr_err_e fstr_del (fstr_s * self);

#ifdef FSTR_DBG
   void fstr_dbg (fstr_s * self);
#endif


#ifdef __cplusplus
}
#endif

/* ---------------------------------------------------------------------
   Generated by NEW (c) ED 2.4
   Powered by C-code generator (c) ED 2003 1.0
   --------------------------------------------------------------------- */

#endif                          /* guard */
