Home | History | Annotate | Download | only in pan
      1 #ifndef _SPLITSTR_H_
      2 #define _SPLITSTR_H_
      3 /*
      4  * Synopsis
      5  *
      6  * const char **splitstr(const char *str, const char *separator, int *argcount)
      7  *
      8  * Description
      9  * This function splits a string (str) into components that are separated by
     10  * one or more of the characters in the (separator) string.  An array of
     11  * strings is returned, along with argcount being set to the number of strings
     12  * found.  Argcount can be NULL.  There will always be a NULL element in the
     13  * array after the last valid element.  If an error occurs, NULL will be
     14  * returned and argcount will be set to zero.
     15  *
     16  * To rid yourself of the memory allocated for splitstr(), pass the return
     17  * value from splitstr() unmodified to splitstr_free():
     18  *
     19  * void splitstr_free( const char ** return_from_splitstr );
     20  *
     21  */
     22 const char **
     23 splitstr(const char *, const char *, int *);
     24 
     25 /*
     26  * splitster_free( const char ** )
     27  *
     28  * This takes the return value from splitster() and free()s memory
     29  * allocated by splitster.  Assuming: ret=splitster(...), this
     30  * requires that ret and *ret returned from splitster() have not
     31  * been modified.
     32  */
     33 void
     34 splitstr_free( const char ** );
     35 
     36 #endif
     37