cp.c says:

/*
 * mastercmp --
 *      The comparison function for the copy order.  The order is to copy
 *      non-directory files before directory files.  The reason for this
 *      is because files tend to be in the same cylinder group as their
 *      parent directory, whereas directories tend not to be.  Copying the
 *      files first reduces seeking.
 */
int
mastercmp(const FTSENT **a, const FTSENT **b)
{
        int a_info, b_info;

        a_info = (*a)->fts_info;
        if (a_info == FTS_ERR || a_info == FTS_NS || a_info == FTS_DNR)
                return (0);
        b_info = (*b)->fts_info;
        if (b_info == FTS_ERR || b_info == FTS_NS || b_info == FTS_DNR)
                return (0);
        if (a_info == FTS_D)
                return (-1);
        if (b_info == FTS_D)
                return (1);
        return (0);
}


Doesn't the code actually do the opposite?
If 'a' is a directory, it comes first?

Should that be FTS_F?

Reply via email to