#include #include #include #ifndef __FreeBSD__ #include #include #endif char *parse_range (char *dst, char *range) { int i,j=0,k; for (i=0;i 0) { if (range[i] != '-' && (range[i-1] != '-' || i-1 == 0) && range[i+1] != '-') dst[j++] = range[i]; if (range[i] != '-' && range[i-1] == '-' && range[i+1] == '-' && i-1 != 0) return NULL; if (range[i] != '-' && range[i-1] == '-' && i-1 != 0) continue; } if (range[i] != '-' && range[i+1] == '-') { if (range[i+2] == '-') return NULL; if (range[i+2] < range[i]) return NULL; for (k = range[i]; k <= range[i+2]; k++) dst[j++] = k; } } dst[j] = '\0'; return dst; } char *gen_rand_string (char *dst, char *range, int size) { char text[512]; int i; bzero(text,512); parse_range(text,range); for (i=0;i