len = get_word(str, word);
len = get_word(str, word, sizeof(word));
f_default(str, token, db)    char *str;    Token token;    Database *db;{    char word[BUFSIZE], *p;    int len;    len = get_word(str, word);    if(len < 1){	goto err;    }    switch(parse_info.pre_state){    case S_NULL:	if(parse_info.category != NULL){	    goto err;	}	p = (char *)Xmalloc(strlen(word) + 1);	if(p == NULL){	    goto err;	}	strcpy(p, word);	parse_info.category = p;	parse_info.pre_state = S_CATEGORY;	break;    case S_CATEGORY:	if(parse_info.nest_depth == 0){	    if(check_category_end(str)){		/* end of category is detected.		   clear context and zap to end of this line */		clear_parse_info();		len = strlen(str);		break;	    }	}	p = (char *)Xmalloc(strlen(word) + 1);	if(p == NULL){	    goto err;	}	strcpy(p, word);	if(parse_info.name[parse_info.nest_depth] != NULL){	    Xfree(parse_info.name[parse_info.nest_depth]);	}	parse_info.name[parse_info.nest_depth] = p;	parse_info.pre_state = S_NAME;	break;    case S_NAME:    case S_VALUE:	if( (parse_info.bufsize + (int)strlen(word) +1 ) 					>= parse_info.bufMaxSize){	    if(realloc_parse_info(strlen(word) +1) == False){		goto err;	    }	}	strcpy(&parse_info.buf[parse_info.bufsize], word);	parse_info.bufsize += strlen(word);	parse_info.pre_state = S_VALUE;	break;    default:	goto err;    }    return len; err:;    return 0;}