#ifndef RAP_H
#define RAP_H

#include "sysdep.h"
#include "bool.h"
#include "darray.h"
#include "registry.h"

typedef struct RapPack_str {
  int size;
  Darray d;
} *RapPack;


#ifdef __STDC__
char  * RapStr_duplicate(char*);
Bool    RapStr_is_empty(char*);
char*   RapStr_strip_surrounding_space(char*);
NORET   RapStr_destroy(char*);
Bool    RapStr_is_int(char*);
RapPack RapPack_create2(VOIDP,VOIDP);
RapPack RapPack_create3(VOIDP,VOIDP,VOIDP);
RapPack RapPack_create4(VOIDP,VOIDP,VOIDP,VOIDP);
RapPack RapPack_create5(VOIDP,VOIDP,VOIDP,VOIDP,VOIDP);
RapPack RapPack_create6(VOIDP,VOIDP,VOIDP,VOIDP,VOIDP,VOIDP);
VOIDP   RapPack_get(RapPack,int);
NORET   RapPack_destroy(RapPack);
NORET   RapPack_destroy_all();
NORET   RapList_parse_into_darray(Darray,char*);
NORET   RapList_destroy_darray_contents(Darray);
NORET   RapList_parse_into_registry(Registry,char*);
char    RapString_get_char_from_octal(char*);
char *  RapString_encode_string(char*,char*);
const char *  RapString_get_octal_string_from_char(int);
char *  RapString_decode_string(char*);
Bool     RapDarray_pointer_index(Darray,VOIDP,int*);
int      RapDarray_pointer_get_index(Darray,VOIDP);
NORET    RapDarray_print(char*,Darray);
#else
char   * RapStr_duplicate();
Bool    RapStr_is_empty();
char*    RapStr_strip_surrounding_space();
NORET   RapStr_destroy();
Bool    RapStr_is_int();
RapPack RapPack_create2();
RapPack RapPack_create3();
RapPack RapPack_create4();
RapPack RapPack_create5();
RapPack RapPack_create6();
VOIDP   RapPack_get();
NORET   RapPack_destroy();
NORET   RapPack_destroy_all();
NORET   RapList_parse_into_darray();
NORET   RapList_destroy_darray_contents();
NORET   RapList_parse_into_registry();
char    RapString_get_char_from_octal();
char *  RapString_encode_string();
const char *  RapString_get_octal_string_from_char();
char *  RapString_decode_string();
Bool     RapDarray_pointer_index();
int      RapDarray_pointer_get_index();
NORET    RapDarray_print();
#endif 

#endif
