83 |
int |
int |
84 |
use_file_start_id (struct dirrect *record, struct rrip_lookup *rr) |
use_file_start_id (struct dirrect *record, struct rrip_lookup *rr) |
85 |
{ |
{ |
|
/* If it is a directory, don't use file_start. */ |
|
|
if (rr->valid & VALID_PX) |
|
|
{ |
|
|
if (((rr->valid & VALID_MD) == 0) && (rr->mode & S_IFDIR)) |
|
|
return 0; |
|
|
} |
|
|
else |
|
|
if ((rr->valid & VALID_MD) == 0) |
|
|
{ |
|
|
/* If there are no periods, it's a directory. */ |
|
|
if (((rr->valid & VALID_NM) && !index (rr->name, '.')) |
|
|
|| (!(rr->valid & VALID_NM) && !memchr (record->name, '.', |
|
|
record->namelen))) |
|
|
return 0; |
|
|
} |
|
|
if ((rr->valid & VALID_MD) && (rr->allmode & S_IFDIR)) |
|
|
return 0; |
|
|
|
|
86 |
/* If it is a symlink or a zero length file, don't use file_start. */ |
/* If it is a symlink or a zero length file, don't use file_start. */ |
87 |
if (rr->valid & VALID_SL || isonum_733 (record->size) == 0) |
if (rr->valid & VALID_SL || isonum_733 (record->size) == 0) |
88 |
return 0; |
return 0; |