|
|
| version 1.2, 2003/11/14 10:32:36 | version 1.4, 2004/01/09 05:07:03 |
|---|---|
| Line 73 static void char2str(char *dst, int size | Line 73 static void char2str(char *dst, int size |
| CFRelease(cfsr); | CFRelease(cfsr); |
| } | } |
| void *file_list1st(const char *dir, FLDATA *fl) { | void *file_list1st(const char *dir, FLINFO *fli) { |
| void *ret; | FLISTH ret; |
| Str255 fname; | Str255 fname; |
| FSSpec fss; | FSSpec fss; |
| FSRef fsr; | FSRef fsr; |
| Line 93 void *file_list1st(const char *dir, FLDA | Line 93 void *file_list1st(const char *dir, FLDA |
| } | } |
| ((FLHDL)ret)->eoff = FALSE; | ((FLHDL)ret)->eoff = FALSE; |
| ((FLHDL)ret)->fsi = fsi; | ((FLHDL)ret)->fsi = fsi; |
| if (file_listnext(ret, fl) == SUCCESS) { | if (file_listnext(ret, fli) == SUCCESS) { |
| return(ret); | return(ret); |
| } | } |
| Line 104 ff1_err1: | Line 104 ff1_err1: |
| return(NULL); | return(NULL); |
| } | } |
| BOOL file_listnext(void *hdl, FLDATA *fl) { | BOOL file_listnext(FLISTH hdl, FLINFO *fli) { |
| FLHDL flhdl; | FLHDL flhdl; |
| ItemCount count; | ItemCount count; |
| Line 127 BOOL file_listnext(void *hdl, FLDATA *fl | Line 127 BOOL file_listnext(void *hdl, FLDATA *fl |
| flhdl->eoff = TRUE; | flhdl->eoff = TRUE; |
| goto ffn_err; | goto ffn_err; |
| } | } |
| if (fl) { | if (fli) { |
| char2str(fl->path, sizeof(fl->path), | char2str(fli->path, sizeof(fli->path), |
| flhdl->name.unicode, flhdl->name.length); | flhdl->name.unicode, flhdl->name.length); |
| fl->size = (UINT32)flhdl->fsci.dataLogicalSize; | fli->size = (UINT32)flhdl->fsci.dataLogicalSize; |
| if (flhdl->fsci.nodeFlags & kFSNodeIsDirectoryMask) { | if (flhdl->fsci.nodeFlags & kFSNodeIsDirectoryMask) { |
| fl->attr = FILEATTR_DIRECTORY; | fli->attr = FILEATTR_DIRECTORY; |
| } | } |
| else { | else { |
| fl->attr = FILEATTR_ARCHIVE; | fli->attr = FILEATTR_ARCHIVE; |
| } | } |
| } | } |
| return(SUCCESS); | return(SUCCESS); |
| Line 144 ffn_err: | Line 144 ffn_err: |
| return(FAILURE); | return(FAILURE); |
| } | } |
| void file_listclose(void *hdl) { | void file_listclose(FLISTH hdl) { |
| if (hdl) { | if (hdl) { |
| FSCloseIterator(((FLHDL)hdl)->fsi); | FSCloseIterator(((FLHDL)hdl)->fsi); |
| Line 161 typedef struct { | Line 161 typedef struct { |
| long tagid; | long tagid; |
| } _FLHDL, *FLHDL; | } _FLHDL, *FLHDL; |
| void *file_list1st(const char *dir, FLDATA *fl) { | FLISTH file_list1st(const char *dir, FLINFO *fli) { |
| Str255 fname; | Str255 fname; |
| FSSpec fss; | FSSpec fss; |
| Line 193 void *file_list1st(const char *dir, FLDA | Line 193 void *file_list1st(const char *dir, FLDA |
| } | } |
| ret->eoff = FALSE; | ret->eoff = FALSE; |
| ret->index = 1; | ret->index = 1; |
| if (file_listnext((void *)ret, fl) == SUCCESS) { | if (file_listnext((FLISTH)ret, fli) == SUCCESS) { |
| return((void *)ret); | return((FLISTH)ret); |
| } | } |
| ff1_err2: | ff1_err2: |
| Line 204 ff1_err1: | Line 204 ff1_err1: |
| return(NULL); | return(NULL); |
| } | } |
| BOOL file_listnext(void *hdl, FLDATA *fl) { | BOOL file_listnext(FLISTH hdl, FLINFO *fli) { |
| FLHDL flhdl; | FLHDL flhdl; |
| Str255 fname; | Str255 fname; |
| Line 223 BOOL file_listnext(void *hdl, FLDATA *fl | Line 223 BOOL file_listnext(void *hdl, FLDATA *fl |
| goto ffn_err; | goto ffn_err; |
| } | } |
| flhdl->index++; | flhdl->index++; |
| if (fl) { | if (fli) { |
| mkcstr(fl->path, sizeof(fl->path), fname); | mkcstr(fli->path, sizeof(fli->path), fname); |
| fl->size = 0; | |
| if (flhdl->pb.hFileInfo.ioFlAttrib & 0x10) { | if (flhdl->pb.hFileInfo.ioFlAttrib & 0x10) { |
| fl->attr = FILEATTR_DIRECTORY; | fli->attr = FILEATTR_DIRECTORY; |
| fli->size = 0; | |
| } | } |
| else { | else { |
| fl->attr = FILEATTR_ARCHIVE; | fli->attr = FILEATTR_ARCHIVE; |
| fli->size = flhdl->pb.hFileInfo.ioFlLgLen; | |
| } | } |
| } | } |
| return(SUCCESS); | return(SUCCESS); |
| Line 239 ffn_err: | Line 240 ffn_err: |
| return(FAILURE); | return(FAILURE); |
| } | } |
| void file_listclose(void *hdl) { | void file_listclose(FLISTH hdl) { |
| if (hdl) { | if (hdl) { |
| _MFREE(hdl); | _MFREE(hdl); |