|
|
| version 1.2, 2004/01/10 17:24:01 | version 1.3, 2004/01/23 06:03:40 |
|---|---|
| Line 229 short file_attr(const char *path) { | Line 229 short file_attr(const char *path) { |
| FSSpec fss; | FSSpec fss; |
| FSRef fsr; | FSRef fsr; |
| FSCatalogInfo fsci; | FSCatalogInfo fsci; |
| short ret; | |
| mkstr255(fname, path); | mkstr255(fname, path); |
| if ((FSMakeFSSpec(0, 0, fname, &fss) != noErr) || | if ((FSMakeFSSpec(0, 0, fname, &fss) != noErr) || |
| Line 237 short file_attr(const char *path) { | Line 238 short file_attr(const char *path) { |
| NULL, NULL, NULL) != noErr)) { | NULL, NULL, NULL) != noErr)) { |
| return(-1); | return(-1); |
| } | } |
| else if (fsci.nodeFlags & kFSNodeIsDirectoryMask) { | if (fsci.nodeFlags & kFSNodeIsDirectoryMask) { |
| return(FILEATTR_DIRECTORY); | ret = FILEATTR_DIRECTORY; |
| } | } |
| else { | else { |
| return(FILEATTR_ARCHIVE); | ret = FILEATTR_ARCHIVE; |
| } | } |
| if (fsci.nodeFlags & kFSNodeLockedMask) { | |
| ret |= FILEATTR_READONLY; | |
| } | |
| return(ret); | |
| #else | #else |
| Str255 fname; | Str255 fname; |
| FSSpec fss; | FSSpec fss; |
| CInfoPBRec pb; | CInfoPBRec pb; |
| short ret; | |
| mkstr255(fname, path); | mkstr255(fname, path); |
| FSMakeFSSpec(0, 0, fname, &fss); | FSMakeFSSpec(0, 0, fname, &fss); |
| Line 262 short file_attr(const char *path) { | Line 268 short file_attr(const char *path) { |
| if (PBGetCatInfo(&pb, false) != noErr) { | if (PBGetCatInfo(&pb, false) != noErr) { |
| return(-1); | return(-1); |
| } | } |
| if (pb.hFileInfo.ioFlAttrib & 0x10) { | if (pb.hFileInfo.ioFlAttrib & ioDirMask) { |
| return(FILEATTR_DIRECTORY); | ret = FILEATTR_DIRECTORY; |
| } | } |
| else { | else { |
| return(FILEATTR_ARCHIVE); | ret = FILEATTR_ARCHIVE; |
| } | |
| if (pb.hFileInfo.ioFlAttrib & kioFlAttribLockedMask) { | |
| ret |= FILEATTR_READONLY; | |
| } | } |
| return(ret); | |
| #endif | #endif |
| } | } |
| Line 422 BOOL file_listnext(FLISTH hdl, FLINFO *f | Line 432 BOOL file_listnext(FLISTH hdl, FLINFO *f |
| fli->size = (UINT32)flhdl->fsci.dataLogicalSize; | fli->size = (UINT32)flhdl->fsci.dataLogicalSize; |
| dt = &flhdl->fsci.contentModDate; | dt = &flhdl->fsci.contentModDate; |
| } | } |
| if (flhdl->fsci.nodeFlags & kFSNodeLockedMask) { | |
| fli->attr |= FILEATTR_READONLY; | |
| } | |
| cnvdatetime(dt, &fli->date, &fli->time); | cnvdatetime(dt, &fli->date, &fli->time); |
| char2str(fli->path, sizeof(fli->path), | char2str(fli->path, sizeof(fli->path), |
| flhdl->name.unicode, flhdl->name.length); | flhdl->name.unicode, flhdl->name.length); |
| Line 538 BOOL file_listnext(FLISTH hdl, FLINFO *f | Line 551 BOOL file_listnext(FLISTH hdl, FLINFO *f |
| flhdl->index++; | flhdl->index++; |
| if (fli) { | if (fli) { |
| fli->caps = FLICAPS_SIZE | FLICAPS_ATTR | FLICAPS_DATE | FLICAPS_TIME; | fli->caps = FLICAPS_SIZE | FLICAPS_ATTR | FLICAPS_DATE | FLICAPS_TIME; |
| if (flhdl->pb.hFileInfo.ioFlAttrib & 0x10) { | if (flhdl->pb.hFileInfo.ioFlAttrib & ioDirMask) { |
| fli->attr = FILEATTR_DIRECTORY; | fli->attr = FILEATTR_DIRECTORY; |
| fli->size = 0; | fli->size = 0; |
| dt = flhdl->pb.dirInfo.ioDrCrDat; | dt = flhdl->pb.dirInfo.ioDrCrDat; |
| Line 548 BOOL file_listnext(FLISTH hdl, FLINFO *f | Line 561 BOOL file_listnext(FLISTH hdl, FLINFO *f |
| fli->size = flhdl->pb.hFileInfo.ioFlLgLen; | fli->size = flhdl->pb.hFileInfo.ioFlLgLen; |
| dt = flhdl->pb.hFileInfo.ioFlMdDat; | dt = flhdl->pb.hFileInfo.ioFlMdDat; |
| } | } |
| if (flhdl->pb.hFileInfo.ioFlAttrib & kioFlAttribLockedMask) { | |
| fli->attr |= FILEATTR_READONLY; | |
| } | |
| cnvdatetime(dt, &fli->date, &fli->time); | cnvdatetime(dt, &fli->date, &fli->time); |
| mkcstr(fli->path, sizeof(fli->path), fname); | mkcstr(fli->path, sizeof(fli->path), fname); |
| } | } |