char *jjudge_replace_char(char *buf, int from, int to) { char *p = buf; jjudge_t judger; jjudge_init(&judger); while (*p) { unsigned char jc = *p; unsigned char c = from; if (jjudge_equal(&judger, jc, c)) *p = to; p++; } return buf; }
char *fname_as_file(char *buf) { char *mark = NULL; char *p = buf; jjudge_t judger; jjudge_init(&judger); while (*p) { unsigned char c = *p; if (jjudge_equal(&judger, c, FNAME_FS_CHAR)) { if (!mark) mark = p; } else mark = NULL; p++; } if (mark) *mark = '\0'; return buf; }
char *fname_get_file(char *buf) { char *mark = NULL; char *p = buf; jjudge_t judger; jjudge_init(&judger); fname_as_file(buf); while (*p) { unsigned char c = *p; if (jjudge_equal(&judger, c, FNAME_FS_CHAR)) { mark = p; } p++; } if (mark) { mark++; p = buf; while ((*p++ = *mark++)); } return buf; }
char *fname_get_parent(char *buf) { char *mark = NULL; char *p = buf; int conti = 0; jjudge_t judger; jjudge_init(&judger); fname_as_file(buf); while (*p) { unsigned char c = *p; if (jjudge_equal(&judger, c, FNAME_FS_CHAR)) { if (!conti) { mark = p; conti++; } } else conti = 0; p++; } if (mark) { *mark = '\0'; return buf; } return NULL; }