detected a dev/inode cache difference and evicted the object
from the cache. Fixes bug #498.
* FIX: Add missing include, fixes bug #512.
+* FIX: Change default FinderInfo for directories to be all 0, fixes
+ bug 514.
Changes in 3.0.3
================
memcpy( data, ad_entry( &ad, ADEID_FINDERI ), 32 );
} else { /* no appledouble */
memset( data, 0, 32 );
- /* set default view -- this also gets done in ad_open() */
- ashort = htons(FINDERINFO_CLOSEDVIEW);
- memcpy(data + FINDERINFO_FRVIEWOFF, &ashort, sizeof(ashort));
-
/* dot files are by default visible */
if (invisible_dots(vol, cfrombstr(dir->d_u_name))) {
ashort = htons(FINDERINFO_INVISIBLE);
}
} else {
FinderInfo = ad_entry(adp, ADEID_FINDERI);
-
- if ((adflags & ADFLAGS_DIR)) {
- /* set default view */
- uint16 = htons(FINDERINFO_CLOSEDVIEW);
- memcpy(emptyFinderInfo + FINDERINFO_FRVIEWOFF, &uint16, 2);
- }
-
/* Check if FinderInfo equals default and empty FinderInfo*/
if (memcmp(FinderInfo, emptyFinderInfo, 32) != 0) {
/* FinderInfo contains some non 0 bytes -> include "com.apple.FinderInfo" */
eid++;
}
- /* put something sane in the directory finderinfo */
- if (stp == NULL) {
- stp = &st;
- if (lstat(path, &st) != 0)
- return -1;
- }
-
- if ((adflags & ADFLAGS_DIR)) {
- /* set default view */
- ashort = htons(FINDERINFO_CLOSEDVIEW);
- memcpy(ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRVIEWOFF, &ashort, sizeof(ashort));
- } else {
- /* set default creator/type fields */
- memcpy(ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRTYPEOFF,"\0\0\0\0", 4);
- memcpy(ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRCREATOFF,"\0\0\0\0", 4);
- }
+ /* set default creator/type fields */
+ memcpy(ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRTYPEOFF,"\0\0\0\0", 4);
+ memcpy(ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRCREATOFF,"\0\0\0\0", 4);
/* make things invisible */
if ((ad->ad_options & ADVOL_INVDOTS)
}
/* put something sane in the date fields */
+ if (stp == NULL) {
+ stp = &st;
+ if (lstat(path, &st) != 0)
+ return -1;
+ }
ad_setdate(ad, AD_DATE_CREATE | AD_DATE_UNIX, stp->st_mtime);
ad_setdate(ad, AD_DATE_MODIFY | AD_DATE_UNIX, stp->st_mtime);
ad_setdate(ad, AD_DATE_ACCESS | AD_DATE_UNIX, stp->st_mtime);