Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Jun 06, 2020 12:04 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 236 posts ]  Go to page Previous 17 8 9 10 1116 Next
Author Message
PostPosted: Sun Nov 27, 2016 1:01 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1271
Короче, ввод пути - не проблема, вариантов много. Можно тупо продублировать функции. Для 70 можно сделать проще: если отказаться от возможности указывать кодировку для непосредственной строки в структуре, то для строки по адресу действительно можно указывать кодировку в байте 20 перед указателем, который сейчас всегда 0.

Получение пути запуска. Тут сложнее, так чтоб вообще без маркера есть только три варианта: либо новая версия заголовка MENUET03 для utf-8, а в MENUET01 вернуть ср866, либо функция для получения пути запуска в юникоде (только боюсь никто пользоваться ею не будет, и юникода не получится), либо вообще забить на юникод до поддержки РЕ.


Top
   
PostPosted: Sun Nov 27, 2016 1:03 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Siemargl
С путями и именами файлов в posix нормально. Все это приняли, даже MS.


Top
   
PostPosted: Sun Nov 27, 2016 1:07 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 439
Pathoswithin wrote:
Короче, ввод пути - не проблема, вариантов много. Можно тупо продублировать функции. Для 70 можно сделать проще: если отказаться от возможности указывать кодировку для непосредственной строки в структуре, то для строки по адресу действительно можно указывать кодировку в байте 20 перед указателем, который сейчас всегда 0.

Там не всегда 0. Какая то функция там требует обязательно строку, а не 0+указатель - нашел - SysFn70.9

Можно, конечно поправить, но пока так


Top
   
PostPosted: Sun Nov 27, 2016 1:17 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Знак кодировки надо убирать. Это источник бесконечных проблем.
Функции сдублировать. Многие программы на ассемблере используют структуру ф.70 для имени файла. Перевести их на указатель будет сложно.
Новый заголовок представляется мне лучшим решением. В этом случае в структуре PROC ставить флаг поддержки utf-8.


Top
   
PostPosted: Sun Nov 27, 2016 1:40 am 
Offline
User avatar

Joined: Sun Oct 30, 2016 1:30 am
Posts: 64
Не лучше ли для новых приложений не совместимых с МенуетОС использовать другой заголовок? Например, KOLIBRI или KEX. Или с этим есть какие-то трудности?


Top
   
PostPosted: Sun Nov 27, 2016 3:37 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1271
Serge
Нет, использовать структуру ф.70 для имени файла в cp866 будет по прежнему можно, а вот указывать кодировку - только для строки по указателю.
И в итоге все равно новый заголовок...


Top
   
PostPosted: Sun Nov 27, 2016 7:30 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Pathoswithin wrote:
Serge
Нет, использовать структуру ф.70 для имени файла в cp866 будет по прежнему можно, а вот указывать кодировку - только для строки по указателю.

Это половинчатое решение. В большинстве примеров, которые я видел, путь вписан в структуру. Для перехода на utf-8 придётся много править.


Top
   
PostPosted: Sun Nov 27, 2016 12:27 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5278
Serge
Разве дублирование кода не является плохим решением в программировании?

Есть ли другое решение?

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Sun Nov 27, 2016 12:38 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5278
0CodErr
В данный момент PathOsWithin делает много полезного, реально пишет код - то, чего многие другие не делают и хотя бы за это его нужно уважать.

Mario в свое время вывел правило: мнение программиста пишущего код важнее меня людей которые этого не делают. В более простом варианте в народе это правило звучит так: пиздеть не мешки ворочать. Перед телевизором мы все политики, в бане мы все философы, а как до дела дойдет...

Именно PathOsWithin взялся решать задачу юникода, не ты. Он потратил на это много времени, своего времени. И он принял определенные решения в процессе решения задачи и возможно не всегда оптимальные. Ты как человек который не взялся решать эту задачу можешь дать отзыв о его работе, предложить варианты и скажем провести голосование, но никак не оскорблять.

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Sun Nov 27, 2016 3:36 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1271
Суть проблемы.
Ожидания:
1. Автор что-то сделал.
2. Другие находят то, что получилось плохо, и предлагают как сделать лучше.
Реальность:
1. Автор что-то сделал.
2. Проходит время.
3. Другие начинают обвинять автора.
4. Автор сам думает, как всем угодить.

Serge
Путь, который вписан в структуру, останется в ср866. Обычно это абсолютный путь в пределах рамдиска (ascii), ему и юникод не нужен, и с символов ☺☻ он точно никогда не начинается. Так что решение полноценное.

По поводу моего ника, есть такое слово и такое слово


Top
   
PostPosted: Sun Nov 27, 2016 6:57 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Pathoswithin wrote:
Суть проблемы.
Ожидания:
1. Автор что-то сделал.
2. Другие находят то, что получилось плохо, и предлагают как сделать лучше.
Реальность:
1. Автор что-то сделал.
2. Проходит время.
3. Другие начинают обвинять автора.
4. Автор сам думает, как всем угодить.
Ты удивлён ?

Раньше подобные изменения предварительно обсуждались:
Работа с файловой системой
Удаление 58 сис. функции из ядра.
Новая модель ядра
Плоская модель памяти
Автомонтирование дополнительного раздела с приложениями

Ты внёс очень серьёзные изменения ломающие совместимость без предварительного обсуждения, без тестирования и обижаешься на критику. Что мешало отписаться в профильной теме или здесь ? Вместо этого ты кратко сообщил, что можно вводить имена в юникоде и предложил перевести Eolite на юникод. И кто виноват в том, что плохо продуманные изменения привели к таким последствиям ?

Quote:
Обычно это абсолютный путь в пределах рамдиска

menuetlibc вписывает путь в структуру. Я предполагаю, что diamond и Марат чаще вписывали путь в структуру. Это усложнит перевод их программ на unicode по сравнению с новыми функциями.


Top
   
PostPosted: Sun Nov 27, 2016 6:58 pm 
Offline
User avatar

Joined: Sun Oct 30, 2016 1:30 am
Posts: 64
В данную минуту я слабо разбираюсь в вопросе, а потому не знаю что тебе ответить.
Но есть три вопроса:
Какая кодировка по умолчанию используется в испанской версии колибри?
Как без поддержки юникода в определенной локали одновременно отображать (и использовать) в пути символы из похожих кодировок: cp437 и cp866, например?
Pathoswithin
С какой целью ты начал внедрение поддержки unicode?


Top
   
PostPosted: Sun Nov 27, 2016 7:12 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Leency wrote:
Mario в свое время вывел правило
Это писал diamond. Кстати оба планировали и обсуждали предстоящие изменения. Поэтому я не помню, чтобы они что-то серьёзно поломали.
Quote:
Разве дублирование кода не является плохим решением в программировании?
Это неизбежное зло, если код принимает данные в двух разных форматах. Добавить новые подфункции принимающие utf8 к ф.70 лучше, чем менять поведение существующих.
Фактически и добавление / к префиксу и изменеие байта со смещением 0x14 в параметрах ф.70 это латание дыр на скорую руку. Новые костыли.


Top
   
PostPosted: Sun Nov 27, 2016 8:59 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5278
Мне в Eolite надо будет добавлять эти функции для работы с UTF или интерфейс будет тот же, а функции будут добавлены в ядре?

Как мне узнать в каком формате имя файла?

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Sun Nov 27, 2016 9:06 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1271
Serge
Читал я те обсуждения. Создалось впечатление, что пока как-то не сделаешь, всем всё пофиг. Разница только в том, что потом можно носом ткнуть и сказать что предупреждал. Но что мне с того? Вот тут что-то решили, но теперь всё равно переделывать, проблемы то всплывают только на практике.
Я эти изменения внёс несколько месяцев назад, а заметили только сейчас. Так сильно поломалась совместимость.
Я люблю качественную критику, а не обвинения.

И всё таки я не понял, зачем переводить на unicode путь который вписан в структуру?

Mega_Myr
Странный вопрос. До этого была только ср866 и всё.

Leency
Можно сделать либо параметр кодировки в 70 функции, либо отдельные функции для каждой кодировки.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 236 posts ]  Go to page Previous 17 8 9 10 1116 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited