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