diff -dur a/mac_alias/alias.py b/mac_alias/alias.py --- a/mac_alias/alias.py +++ b/mac_alias/alias.py @@ -258,10 +258,10 @@ alias = Alias() alias.appinfo = appinfo - alias.volume = VolumeInfo (volname.replace('/',':'), + alias.volume = VolumeInfo (volname.decode().replace('/',':'), voldate, fstype, disktype, volattrs, volfsid) - alias.target = TargetInfo (kind, filename.replace('/',':'), + alias.target = TargetInfo (kind, filename.decode().replace('/',':'), folder_cnid, cnid, crdate, creator_code, type_code) alias.target.levels_from = levels_from @@ -276,9 +276,9 @@ b.read(1) if tag == TAG_CARBON_FOLDER_NAME: - alias.target.folder_name = value.replace('/',':') + alias.target.folder_name = value.decode().replace('/',':') elif tag == TAG_CNID_PATH: - alias.target.cnid_path = struct.unpack(b'>%uI' % (length // 4), + alias.target.cnid_path = struct.unpack('>%uI' % (length // 4), value) elif tag == TAG_CARBON_PATH: alias.target.carbon_path = value @@ -313,9 +313,9 @@ alias.target.creation_date \ = mac_epoch + datetime.timedelta(seconds=seconds) elif tag == TAG_POSIX_PATH: - alias.target.posix_path = value + alias.target.posix_path = value.decode() elif tag == TAG_POSIX_PATH_TO_MOUNTPOINT: - alias.volume.posix_path = value + alias.volume.posix_path = value.decode() elif tag == TAG_RECURSIVE_ALIAS_OF_DISK_IMAGE: alias.volume.disk_image_alias = Alias.from_bytes(value) elif tag == TAG_USER_HOME_LENGTH_PREFIX: @@ -467,12 +467,12 @@ b.write(struct.pack(b'>hhQhhQ', TAG_HIGH_RES_VOLUME_CREATION_DATE, - 8, long(voldate * 65536), + 8, int(voldate * 65536), TAG_HIGH_RES_CREATION_DATE, - 8, long(crdate * 65536))) + 8, int(crdate * 65536))) if self.target.cnid_path: - cnid_path = struct.pack(b'>%uI' % len(self.target.cnid_path), + cnid_path = struct.pack('>%uI' % len(self.target.cnid_path), *self.target.cnid_path) b.write(struct.pack(b'>hh', TAG_CNID_PATH, len(cnid_path)))