ssize_t ad_read( struct adouble *ad, const uint32_t eid, off_t off, char *buf, const size_t buflen)
{
ssize_t cc;
- ssize_t rlen;
off_t r_off = 0;
/* We're either reading the data fork (and thus the data file)
/* resource fork is not open ( cf etc/afp/fork.c) */
return 0;
- switch (ad->ad_vers) {
- case AD_VERSION2:
-#ifndef HAVE_EAFD
- case AD_VERSION_EA:
+ if (ad->ad_vers == AD_VERSION_EA) {
+#ifdef HAVE_EAFD
+ r_off = off;
+#else
+ r_off = off + ADEDOFF_RFORK_OSX;
#endif
+ } else {
r_off = ad_getentryoff(ad, eid) + off;
- break;
- default:
- r_off = 0;
- break;
}
if (( cc = adf_pread( &ad->ad_resource_fork, buf, buflen, r_off )) < 0 )