Главная

Русский BeOS - задачки для начинающего программиста

Как мы все знаем, кроме косметических проблем, типа русификации программ, есть и более сущностные задачи, мешающие русскому человеку наслаждаться BeOS.

Например, извечные проблемы с ПРАВИЛЬНЫМ использованием русских букв на подмонтированных дисках FAT(12/16/32), NTFS и ISO CD.

Суть проблемы в том, что для FAT и ISO при чтении с них названия файлов должны преобразовываться из одной из 8–битных кодировок в юникод UTF–8. А при записи — из UTF–8 в
8–битную кодировку.

Корректно решить их можно только правкой исходных текстов для так называемых file system add–on.

К нашему счастью, код драйверов для FAT и ISO распространяется с BeOS PRO или может быть скачан в пакете примеров.

После инсталляции оба драйвера будут находиться здесь:
/boot/optional/sample-code/add–ons
(папки dosfs и iso9660).

Быстрый просмотр исходников dosfs показал, что все утилиты конвертации для всех возможных 8–битных кодировок там имеются, и даже есть switch(), где все они перечислены.

Проблема однако в том, что Be Inc. не довела это дело до конца, и в настоящее время происходит переключение только между японскими кодировками и западной B_MS_DOS_CONVERSION.

Что тут можно сделать. Простейший вариант — заменить B_MS_DOS_CONVERSION в вызовах функций на один из кириллических вариантов. Но тут требуется разобраться на какой — B_MS_WINDOWS_1251_CONVERSION или B_MS_DOS_866_CONVERSION. Вполне возможно, что для коротких имен (8+3) используется 866, а для длинных — 1251.
Это и есть первая задача.

Кроме того, в /boot/home/config/settings/kernel/drivers/sample имеется файл настроек dos, который, при переносе его в /boot/home/config/settings/kernel/drivers/ будет считываться драйвером FAT. Грамотно было бы добавить в код драйвера кусок, считывающий параметр кодировки оттуда.

Но это второй этап экспериментов для начинающего BeOS–программера.

Заодно можно было бы поэкспериментировать с буферизацией и кэшированием в этом драйвере, чтобы решить проблемы заедания AVI при проигрывании с FAT. Но это, боюсь посложнее, и осуществимо после набора квалификации.

Теперь о драйвере ISO/CD. После успеха с DOSFS можно перейти и к нему. Почему после? Потому что там в исходных кодах нет столь развитого набора перекодировки, и её придется переносить из DOSFS по образцу.

Ну и теперь NTFS. Тут я вынуждени спросить у читателей — а есть ли вообще проблемы при чтении русских имен файлов с разделов NTFS из BeOS? Поскольку, по идее, NTFS должен бы уже хранить имена в Unicode. Если проблемы есть, то могу представить исходники NTFS add–on для BeOS, выпущенные когда то компанией SWSoft (владельцем www.benews.ru) под лицензией GPL.

К моему большому сожалению, кода CIFS add–on для монтирования и чтения сетевых дисков Microsoft мне разыскать не удалось. Скорее всего потому, что Be Inc лицензировала информацию у Microsoft, а не пользовалась исходниками SAMBA.

Всё это, будь оно осуществлено, было бы реально хорошим подарком русскому беоснику:). Заметно более полезным, чем русифкация калькулятора или Expand-O-Matic–а

P. S. В Haiku и на BeBits имеются более новые версии dosfs и iso9660fs c исходниками, так что можно брать и их.

ntfs

Проблем с ntfs замечено не было

Русский BeOS - задачки для начинающего программиста

Ну вот спасибо! теперь я знаю чего же в BeOS не хватает)) может попробую.

Русский BeOS - задачка 4.

Как заметил 3dEyes, есть еще одна задачка того же рода.
Запись ISO CD из BeOS с русскими буквами в названих файлов.
Образ для записи в Helios и других программах создается утилитой mkisofs.
В этой самой mkisofs есть параметр для входной кодировки и параметр для выходной кодировки.

К сожалению, в списке входных кодировок напрочь отсутствует UTF–8.
Так что это тоже можно было бы покопать.

dos-fs

Насколько я понял, подправленные сырцы уже в хайку CVS.

Re: dos-fs

IMHO c fat12/16/32 ничего без костылей не выйдет они расчитаны на кодировку символов одним байтом поэтому там любой язык кроме английского работает чере костыли, да вообще они отмирают потихоньку,iso9660 тоже самое там эту проблеему решает Joliter.
А вот сделать NTFS драйвер с возможностью записи это бы очень пригодилось

re: dos-fs

Да правда поленился так по лиогонали прошёлся, теперь прочитал полностью, вот мои мысли по поводу Fat проверить какая кодировка не долго, по поводу iso9660 я уже писал там joliter используется для решение этой проблеемы в нём имена вроде как в уникоде хранятся ну это позже гляну.
Но я заметил ещё проблемму для BeOS большие и маленькие буквы в именах файлов это вещи разные а для винды одно и тоже и пэтому на фат удается записать два файла с одинаковым для винды именем это по моему тоже не мещает исправить.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
e
6
x
2
s
z
Enter the code without spaces and pay attention to upper/lower case.