|
|
| version 1.2, 2004/01/10 17:24:01 | version 1.5, 2005/02/14 06:25:31 |
|---|---|
| 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 & 0x01) { | |
| 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 & 0x01) { | |
| 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); |
| } | } |
| Line 596 void file_catname(char *path, const char | Line 612 void file_catname(char *path, const char |
| } | } |
| } | } |
| char *file_getname(char *path) { | char *file_getname(const char *path) { |
| char *ret; | const char *ret; |
| ret = path; | ret = path; |
| while(*path != '\0') { | while(*path != '\0') { |
| Line 606 char *file_getname(char *path) { | Line 622 char *file_getname(char *path) { |
| ret = path; | ret = path; |
| } | } |
| } | } |
| return(ret); | return((char *)ret); |
| } | } |
| void file_cutname(char *path) { | void file_cutname(char *path) { |
| Line 617 void file_cutname(char *path) { | Line 633 void file_cutname(char *path) { |
| p[0] = '\0'; | p[0] = '\0'; |
| } | } |
| char *file_getext(char *path) { | char *file_getext(const char *path) { |
| char *p; | const char *p; |
| char *q; | const char *q; |
| p = file_getname(path); | p = file_getname(path); |
| q = NULL; | q = NULL; |
| Line 633 char *file_getext(char *path) { | Line 649 char *file_getext(char *path) { |
| if (!q) { | if (!q) { |
| q = p; | q = p; |
| } | } |
| return(q); | return((char *)q); |
| } | } |
| void file_cutext(char *path) { | void file_cutext(char *path) { |