Расширенные атрибуты старого Mac в Snow Leopard

В прошлом году мне пришлось конвертировать старый 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 приведет к выводу hex, запустив его на карантин, и вы получите ASCII. Очевидно, что Apple изменила способ обработки расширенных атрибутов, и, возможно, они забыли о людях, которые до сих пор хранят свои шрифты OS 9.

Я что-то здесь упускаю или я просто пишу скрипт для преобразования гекса в ASCII?

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам