/* Compatibility functions for strsep and strtoq missing on Solaris */
#include <sys/types.h>
#include <stdio.h>
#include "asterisk.h"
#include "asterisk/compat.h"
#ifndef HAVE_STRSEP
char* strsep(char** str, const char* delims)
{
char* token;
if (*str==NULL) {
/* No more tokens */
return NULL;
}
token=*str;
while (**str!='\0') {
if (strchr(delims,**str)!=NULL) {
**str='\0';
(*str)++;
return token;
/* There is no other token */
*str=NULL;
#endif
#ifndef HAVE_SETENV
int setenv(const char *name, const char *value, int overwrite)
unsigned char *buf;
int buflen;
buflen = strlen(name) + strlen(value) + 2;
if (!(buf = alloca(buflen)))
return -1;
if (!overwrite && getenv(name))
return 0;
snprintf(buf, buflen, "%s=%s", name, value);
return putenv(buf);
#ifndef HAVE_UNSETENV
int unsetenv(const char *name)
return setenv(name, "", 0);