generated html version of STR.hHOME

#ifndef OIO_STR_H
#define OIO_STR_H

/* string type that isn't asciz */

struct STR_struct {unsigned len; char *s;};
typedef struct STR_struct STR;

/* creation/deletion operations */

STR toSTR(char *s);
STR STRcpy(STR s);
STR newSTR(unsigned l);
void initSTR(STR *s);
STR subSTR(STR s,int i,int l);
void delSTR(STR *s);

/* modification operations */

/* remove */
STR *STRrem(STR *s,int i,int l);

/* append */
STR *STRapSTR(STR *s,STR t);
STR *STRapstr(STR *s,char *t);
STR *STRapmem(STR *s,char *t,int tl);
STR *STRapchr(STR *s,char c);

/* insert */
STR *STRinSTR(STR *s,int i,STR t);
STR *STRinstr(STR *s,int i,char *t);
STR *STRinmem(STR *s,int i,char *t,int tl);
STR *STRinchr(STR *s,int i,char c);

/* overwrite */
STR *STRovrSTR(STR *s,int i,STR t);
STR *STRovrstr(STR *s,int i,char *t);
STR *STRovrmem(STR *s,int i,char *t,int tl);
STR *STRovrchr(STR *s,int i,char c);

/* replace */
STR *STRrepSTR(STR *s,int i,int l,STR t);
STR *STRrepstr(STR *s,int i,int l,char *t);
STR *STRrepmem(STR *s,int i,int l,char *t,int tl);
STR *STRrepchr(STR *s,int i,int l,char c);

/* test operations */

/* compare */
int STRcmpSTR(STR s,STR t);
int STRcmpstr(STR s,char *t);
int STRcmpmem(STR s,char *t,int tl);
int memcmpmem(char *s,int sl,char* t,int tl);

/* search */
int STRsrchSTR(STR s,STR t);
int STRsrchstr(STR s,char *t);
int STRsrchmem(STR s,char *t,int tl);
int STRsrchchr(STR s,char c);
int memsrchmem(char *s,int sl,char* t,int tl);

/* if stdio.h is included, declare the FILE* io functions*/
#ifdef FILENAME_MAX
STR fgetSTR(FILE*f);
void fputSTR(STR s,FILE*f);
#endif

#endif