山本です。新しく追加した関数を説明します。 static char * find_magic(s, flags, pbeg, pend) char *s; int flags; char **pbeg; char **pend; sからmagicなelemを検索する。 magicなelemは[*pbeg, *pend) の範囲になる。 "hoge/hoge/?-?/mm" ^ ^ *pbeg *pend もしもヌルターミネータに行き当たったら、find_dirsepと異なり そのポインタを返す。(find_dirsepはNULL) static int do_fnmatch(beg, end, string, flags) char *beg; char *end; const char *string; int flags; [beg, end)をパターンとしてfnmatchを呼び出す。