114 const unsigned char *cp = (
unsigned char *) text;
118 if ((cp[0] !=
'2' && cp[0] !=
'4' && cp[0] !=
'5') || cp[1] !=
'.')
123 if ((len = strspn((
char *) cp,
"0123456789")) < 1 || len >
DSN_DIGS2
129 if ((len = strspn((
char *) cp,
"0123456789")) < 1 || len >
DSN_DIGS3
130 || (cp[len] != 0 && !
ISSPACE(cp[len])))
133 return (((
char *) cp - text) + len);
140 const char *myname =
"dsn_split";
141 const char *cp = text;
155 strncpy(dp->
dsn.
data, cp, len);
158 }
else if ((len =
dsn_valid(def_dsn)) > 0) {
159 strncpy(dp->
dsn.
data, def_dsn, len);
162 msg_panic(
"%s: bad default status \"%s\"", myname, def_dsn);
DSN_SPLIT * dsn_split(DSN_SPLIT *dp, const char *def_dsn, const char *text)
size_t dsn_valid(const char *text)
NORETURN msg_panic(const char *fmt,...)
#define DSN_STATUS(dsn_buf)
char * dsn_prepend(const char *def_dsn, const char *text)
char * concatenate(const char *arg0,...)