Расширенные атрибуты старого Mac в Snow Leopard - PullRequest
2 голосов
/ 12 февраля 2010

В прошлом году мне пришлось конвертировать и старый шрифт Mac из OS 9, чтобы кто-то мог использовать его на ПК. Я обнаружил, что тогда данные о шрифтах хранились в расширенном атрибуте com.apple.ResourceFork. Фактический размер файла будет отображаться как 0 в терминале. Мне удалось обойти это, просто распечатав значение этого расширенного атрибута, используя xattr -p com.apple.ResourceFork font> font.ttf.

Теперь с Snow Leopard и сжатием файлов HFS + все изменилось. Если вы сейчас попытаетесь распечатать расширенный атрибут старого стиля, вы получите только гекс, а не значение. Новые расширенные атрибуты появляются без каких-либо шестнадцатеричных значений, если не указано с параметром -x. Вот пример:

xattr -l com.apple.FinderInfo Rublof
Rublof: com.apple.ResourceFork:
00000000  00 00 01 00 00 00 9E 50 00 00 9D 50 00 00 00 32  |.......P...P...2|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
...
Rublof: com.apple.quarantine: 0000;4b75ae02;Mail;39396996-3C5C-48F5-8BDD-775EB40CAD9C|com.apple.mail

Выполнение xattr -p в ResourceFork выдаст гекс, запустив его на карантин, и вы получите ASCII. Очевидно, что Apple изменила способ обработки расширенных атрибутов, и, возможно, они забыли о людях, которые до сих пор хранят свои шрифты OS 9.

Что-то мне здесь не хватает или я просто пишу скрипт для преобразования гекса в ASCII?

Ответы [ 2 ]

5 голосов
/ 12 февраля 2010

Вы также можете получить доступ к вилкам ресурсов, добавив "/ rsrc" или "/..namedfork/rsrc" к имени файла.Попробуйте cp Rublof/rsrc Rublof.ttf.Тем не менее, вилки ресурсов устарели, а расширенные атрибуты - нет.Механизм "/..namedfork" может исчезнуть из будущих выпусков.Если это произойдет, вы можете попробовать xxd преобразовать обратно в двоичный файл:

xattr -p com.apple.ResourceFork Rublof | xxd -r > Rublof.ttf

2 голосов
/ 13 февраля 2010

Преобразование ветвления ресурса в ветвь данных не будет делать то, что вам нужно - оно все еще в формате ветвления ресурса, поэтому ничто не сможет его использовать. Чтобы получить его в кроссплатформенном формате, вам нужен конвертер типа фондю . Он будет копаться в чемодане шрифтов Mac старого стиля и извлекать ресурсы sfnt (шрифты TrueType и OpenType) в файлы .ttf и .otf, ресурсы POST (шрифты PostScript) в файлы .pbf, а также ресурсы NFNT и FONT (растровые шрифты) в .bdf файлы.

Кстати, пакет Mac OS / X из раздела загрузки SourceForge выдает ошибку при установке, но, похоже, все равно успешно устанавливается.

...