Re: [netatalk-admins] Re: os8, finder info yuckiness, and a fix


Subject: Re: [netatalk-admins] Re: os8, finder info yuckiness, and a fix
From: a sun (asun@zoology.washington.edu)
Date: Fri Aug 08 1997 - 12:12:23 EDT


here's my new fix for 1.4b2. after i've tested to see if it works
properly, i'll make a new a13-14-2 which incorporates it. anyways, it
should preserve dynamic extension maps at the cost of an extra copy.

--- fork.c.save Fri Aug 8 08:45:41 1997
+++ fork.c Fri Aug 8 08:52:41 1997
@@ -709,15 +709,16 @@
             break;
 
         case FILPBIT_FINFO :
- if ( !isad || bcmp( ad_entry( &ofork->of_ad, ADEID_FINDERI ),
+ memcpy(data, isad ? ad_entry(&ofork->of_ad, ADEID_FINDERI) :
+ ufinderi, 32);
+
+ if (!isad || bcmp( ad_entry( &ofork->of_ad, ADEID_FINDERI ),
                     ufinderi, 8 ) == 0 ) {
- bcopy( ufinderi, data, 32 );
+ bcopy( ufinderi, data, 8 );
                 if (( em = getextmap( ofork->of_name )) != NULL ) {
                     bcopy( em->em_type, data, sizeof( em->em_type ));
                     bcopy( em->em_creator, data + 4, sizeof( em->em_creator ));
                 }
- } else {
- bcopy( ad_entry( &ofork->of_ad, ADEID_FINDERI ), data, 32 );
             }
             data += 32;
             break;
--- file.c.save Fri Aug 8 08:44:49 1997
+++ file.c Fri Aug 8 09:06:34 1997
@@ -124,15 +124,16 @@
             break;
 
         case FILPBIT_FINFO :
+ memcpy(data, isad ? ad_entry(&ad, ADEID_FINDERI) :
+ ufinderi, 32);
+
             if ( !isad ||
                     bcmp( ad_entry( &ad, ADEID_FINDERI ), ufinderi, 8 ) == 0 ) {
- bcopy( ufinderi, data, 32 );
+ bcopy( ufinderi, data, 8);
                 if (( em = getextmap( path )) != NULL ) {
                     bcopy( em->em_type, data, sizeof( em->em_type ));
                     bcopy( em->em_creator, data + 4, sizeof( em->em_creator ));
                 }
- } else {
- bcopy( ad_entry( &ad, ADEID_FINDERI ), data, 32 );
             }
             data += 32;
             break;
@@ -407,7 +408,7 @@
                     }
                 }
             }
- bcopy( buf, ad_entry( &ad, ADEID_FINDERI ), 32 );
+ memcpy(ad_entry( &ad, ADEID_FINDERI ), buf, 32 );
             buf += 32;
             break;
 



This archive was generated by hypermail 2b28 : Sat Dec 18 1999 - 16:26:04 EST