In mailutils, we use the function argcv_get:
int argcv_get (const char *string, const char *delim, const char *cmnt,
int *argc, char ***argv);
which breaks the `string' according to the delimiters in `delim',
eventually ignoring anything after the comment starter `cmnt'. It fills
in the array `argv' with the collected tokens and stores the number of
them in the memory location pointed to by `argc'. The array `argv' is
NULL terminated. Quotes and backslashes within `string' are handled in
shell-like fashion, i.e. "the \"new string\"" will produce two tokens
"the" and "new string".
The function returns 0 on success. Both `delim' and `cmnt' can be NULL.
It seems to do just what the proposed split module should be doing,
doesn't it?
Regards,
Sergey