|
|
| version 1.2, 2004/01/11 16:58:47 | version 1.5, 2005/05/20 17:25:03 |
|---|---|
| Line 170 short file_getdatetime(FILEH handle, DOS | Line 170 short file_getdatetime(FILEH handle, DOS |
| FSRef ref; | FSRef ref; |
| FSCatalogInfo fsci; | FSCatalogInfo fsci; |
| LocalDateTime ldt; | |
| DateTimeRec dtr; | |
| ZeroMemory(&dtr, sizeof(dtr)); | |
| if ((FSGetForkCBInfo(handle, 0, NULL, NULL, NULL, &ref, NULL) != noErr) || | if ((FSGetForkCBInfo(handle, 0, NULL, NULL, NULL, &ref, NULL) != noErr) || |
| (FSGetCatalogInfo(&ref, kFSCatInfoContentMod, &fsci, NULL, NULL, NULL) | (FSGetCatalogInfo(&ref, kFSCatInfoContentMod, &fsci, NULL, NULL, NULL) |
| != noErr)) { | != noErr)) { |
| return(-1); | return(-1); |
| } | } |
| ConvertUTCToLocalDateTime(&fsci.contentModDate, &ldt); | cnvdatetime(&fsci.contentModDate, dosdate, dostime); |
| SecondsToDate(ldt.lowSeconds, &dtr); | |
| if (dosdate) { | |
| dosdate->year = dtr.year; | |
| dosdate->month = (BYTE)dtr.month; | |
| dosdate->day = (BYTE)dtr.day; | |
| } | |
| if (dostime) { | |
| dostime->hour = (BYTE)dtr.hour; | |
| dostime->minute = (BYTE)dtr.minute; | |
| dostime->second = (BYTE)dtr.second; | |
| } | |
| return(0); | return(0); |
| #else | #else |
| (void)handle; | (void)handle; |
| Line 213 short file_delete(const char *path) { | Line 199 short file_delete(const char *path) { |
| short file_attr(const char *path) { | short file_attr(const char *path) { |
| #ifdef TARGET_API_MAC_CARBON | |
| Str255 fname; | Str255 fname; |
| 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 226 short file_attr(const char *path) { | Line 212 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; |
| } | } |
| #else | if (fsci.nodeFlags & kFSNodeLockedMask) { |
| Str255 fname; | ret |= FILEATTR_READONLY; |
| FSSpec fss; | |
| CInfoPBRec pb; | |
| mkstr255(fname, path); | |
| FSMakeFSSpec(0, 0, fname, &fss); | |
| pb.dirInfo.ioNamePtr = fss.name; | |
| pb.dirInfo.ioVRefNum = fss.vRefNum; | |
| pb.dirInfo.ioDrDirID = fss.parID; | |
| if (fss.name[0] == 0) { | |
| pb.dirInfo.ioFDirIndex = -1; | |
| } | |
| else { | |
| pb.dirInfo.ioFDirIndex = 0; | |
| } | } |
| if (PBGetCatInfo(&pb, false) != noErr) { | return(ret); |
| return(-1); | |
| } | |
| if (pb.hFileInfo.ioFlAttrib & 0x10) { | |
| return(FILEATTR_DIRECTORY); | |
| } | |
| else { | |
| return(FILEATTR_ARCHIVE); | |
| } | |
| #endif | |
| } | } |
| short file_dircreate(const char *path) { | short file_dircreate(const char *path) { |
| Line 474 void file_catname(char *path, const char | Line 438 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 484 char *file_getname(char *path) { | Line 448 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 495 void file_cutname(char *path) { | Line 459 void file_cutname(char *path) { |
| p[0] = '\0'; | p[0] = '\0'; |
| } | } |
| char *file_getext(char *path) { | char *file_getext(const char *path) { |
| char *p; | char *p; |
| char *q; | char *q; |