/
Genesis-1.0p36-DEV/
Genesis-1.0p36-DEV/bin/
Genesis-1.0p36-DEV/doc/
Genesis-1.0p36-DEV/etc/
Genesis-1.0p36-DEV/src/data/
/*
// Full copyright information is available in the file ../doc/CREDITS
*/

#ifndef cdc_string_h
#define cdc_string_h

#include "regexp.h"

cStr * string_new(Int len);
cStr * string_empty(Int size);
cStr * string_from_chars(char * s, Int len);
cStr * string_of_char(Int c, Int len);
cStr * string_dup(cStr * str);
void   string_pack(cStr * str, FILE * fp);
cStr * string_unpack(FILE * fp);
Int    string_packed_size(cStr * str);
Int    string_cmp(cStr * str1, cStr * str2);
cStr * string_add(cStr * str1, cStr * str2);
cStr * string_add_chars(cStr * str, char * s, Int len);
cStr * string_addc(cStr * str, Int c);
cStr * string_add_padding(cStr * str,
                              char     * filler,
                              Int        len,
                              Int        padding);
cStr * string_truncate(cStr * str, Int len);
cStr * string_substring(cStr * str, Int start, Int len);
cStr * string_uppercase(cStr * str);
cStr * string_lowercase(cStr * str);
regexp * string_regexp(cStr * str);
void   string_discard(cStr * str);
cStr * string_parse(char * *sptr);
cStr * string_add_unparsed(cStr * str, char * s, Int len);
char * regerror(char * msg);
int string_index(cStr * str, cStr * sub, int origin);
cStr * string_prep(cStr *str, Int start, Int len); 

#define string_length(__s) ((Int) __s->len)
#define string_chars(__s) ((char *) __s->s + __s->start)

#endif