asterisk / strcompat.c

/* Compatibility functions for strsep and strtoq missing on Solaris */

#include <sys/types.h>
#include <stdio.h>

#include "asterisk/compat.h"

char* strsep(char** str, const char* delims)
    char* token;

    if (*str==NULL) {
        /* No more tokens */
        return NULL;

    while (**str!='\0') {
        if (strchr(delims,**str)!=NULL) {
            return token;
    /* There is no other token */
    return token;

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);

int unsetenv(const char *name)
	return setenv(name, "", 0);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.