示例#1
0
static char *readAddress(const char *configFile, int lineNum, char *key,
			 char **startPtr, char **buf, size_t length)
{
    char *endtag, *chptr;
    char *start = *startPtr;
    char *address;
	
    if ((endtag = isolateValue(configFile, lineNum, key, startPtr, buf, length)) != NULL) {

	chptr = endtag;
	while (*chptr && isprint(*chptr) && *chptr != ' ') {
	    chptr++;
	}

	if (*chptr) {
	    message(MESS_ERROR, "%s:%d bad %s address %s\n",
		    configFile, lineNum, key, start);
	    return NULL;
	}

	address = strdup(endtag);
	
	free(endtag);

	return address;
    } else
	return NULL;
}
示例#2
0
文件: config.c 项目: OPSF/uClinux
static char *readAddress(const char *configFile, int lineNum, char *key,
			 char **startPtr)
{
    char oldchar;
    char *endtag, *chptr;
    char *start = *startPtr;
    char *address;

    if (!isolateValue(configFile, lineNum, key, &start, &endtag)) {
	oldchar = *endtag, *endtag = '\0';

	chptr = start;
	while (*chptr && isprint(*chptr) && *chptr != ' ')
	    chptr++;
	if (*chptr) {
	    message(MESS_ERROR, "%s:%d bad %s address %s\n",
		    configFile, lineNum, key, start);
	    return NULL;
	}

	address = strdup(start);

	*endtag = oldchar, start = endtag;

	*startPtr = start;

	return address;
    } else
	return NULL;
}
示例#3
0
文件: config.c 项目: OPSF/uClinux
static char *readPath(const char *configFile, int lineNum, char *key,
		      char **startPtr)
{
    char oldchar;
    char *endtag, *chptr;
    char *start = *startPtr;
    char *path;

    wchar_t pwc;
    size_t len;

    if (!isolateValue(configFile, lineNum, key, &start, &endtag)) {
	oldchar = *endtag, *endtag = '\0';

	chptr = start;

	while( (len = mbrtowc(&pwc, chptr, strlen(chptr), NULL)) != 0 ) {
		if( len == (size_t)(-1) || len == (size_t)(-2) || !iswprint(pwc) || iswblank(pwc) ) {
		    message(MESS_ERROR, "%s:%d bad %s path %s\n",
			    configFile, lineNum, key, start);
		    return NULL;
		}
		chptr += len;
	}

/*
	while (*chptr && isprint(*chptr) && *chptr != ' ')
	    chptr++;
	if (*chptr) {
	    message(MESS_ERROR, "%s:%d bad %s path %s\n",
		    configFile, lineNum, key, start);
	    return NULL;
	}
*/

	path = strdup(start);


	*endtag = oldchar, start = endtag;

	*startPtr = start;

	return path;
    } else
	return NULL;
}
示例#4
0
static char *readPath(const char *configFile, int lineNum, char *key,
		      char **startPtr, char **buf, size_t length)
{
    char *chptr;
    char *start = *startPtr;
    char *path;

    wchar_t pwc;
    size_t len;

    if ((start = isolateValue(configFile, lineNum, key, startPtr, buf, length)) != NULL) {

	chptr = start;

	while( (len = mbrtowc(&pwc, chptr, strlen(chptr), NULL)) != 0 && strlen(chptr) != 0) {
		if( len == (size_t)(-1) || len == (size_t)(-2) || !iswprint(pwc) || iswblank(pwc) ) {
		    message(MESS_ERROR, "%s:%d bad %s path %s\n",
			    configFile, lineNum, key, start);
		    return NULL;
		}
		chptr += len;
	}

/*
	while (*chptr && isprint(*chptr) && *chptr != ' ')
	    chptr++;
	if (*chptr) {
	    message(MESS_ERROR, "%s:%d bad %s path %s\n",
		    configFile, lineNum, key, start);
	    return NULL;
	}
*/

	path = strdup(start);
	free(start);

	return path;
    } else
	return NULL;
}