fscan -rc (pchar path, pchar mask, fscanproc fp)
{
  target = alloc (&_, T_CHARS, path, "/", mask);

  files_in (target, (pchar name) {
                                   if (name->is_directory ()) 
                                     fscan (name, mask, fp);
                                   else 
                                     fp (name);
                                 });
}
/
{
  free (&target);
}