Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Oct 26, 2020 1:03 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 236 posts ]  Go to page Previous 16 7 8 9 1016 Next
Author Message
PostPosted: Sat Nov 26, 2016 9:51 pm 
Offline
User avatar

Joined: Sun Oct 30, 2016 1:30 am
Posts: 64
Pathoswithin wrote:
Тут Siemargl прав, бранчи нужны для тех дел, которые заведомо (и масштабно) ломают что-то конкретное.

no comments

Quote:
Но кроме автора их никто тестировать не будет и единичные проблемы с совместимостью всё равно не всплывут до слияния. Собственно, даже без бранча, сколько времени уже прошло?

А кто мешает настроить автосборку для конкретной ветки? И создать специальную тему на форуме, с описанием чего и как тестировать. Что, знаний и прав не хватает или религия не позволяет?

По поводу тестирования и сообщений об ошибках песня отдельная:
За всё время, что я "тусуюсь" на форуме, никто не пригрозил пальцем и не послал в багтрекер. Им кто-нибудь пользуется? Он вообще работает? И ладно я нуб. Но вы, "светила компьютерных наук", вы-то чего расслабились?
Хотя, на несерьёзном проекте он пожалуй не нужен... :cry:


Top
   
PostPosted: Sat Nov 26, 2016 9:58 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Mega_Myr wrote:
Хотя, на несерьёзном проекте он пожалуй не нужен... :cry:
Вот это ключевой момент, похоже.


Top
   
PostPosted: Sat Nov 26, 2016 10:59 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
На серьёзном проекте всё начинается с планирования. Планирования не было - проект несерьёзный. И текущие проблемы с этим связаны.
Pathoswithin wrote:
Там, где раньше был путь в cp866, сейчас путь в utf-8. Существующие приложения редактируют конец строки и передают её в 70 функцию, которая определяет строку как utf-8 благодаря префиксу в начале. Как это будет работать без префикса?
0CodErr wrote:
Я тебе уже говорил как и куда можно воткнуть этот байт.
Поцiент безнадёжен. Пожалуй, не буду тратить на него время.

Siemargl
Всё правильно.

К сожалению, 'sys' это ключ, и по другому сделать сложно. К счастью, он всегда равен рамдиску.


Top
   
PostPosted: Sat Nov 26, 2016 11:07 pm 
Offline
User avatar

Joined: Sun Oct 30, 2016 1:30 am
Posts: 64
Нафига вообще новые создавать?! Тут все плачутся, что дескать разработчики не идут. Идут. Но всё больше прочь.


Top
   
PostPosted: Sat Nov 26, 2016 11:19 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Pathoswithin
Текущие проблемы проблемы связаны с тем, что ты нарушил совместимость с POSIX.
От того, что проблему подпёрли костылём она не исчезла.
Продублирую свой пост
Siemargl wrote:
fopen все так же не хочет создать файл с юникодным относительным путем
Пока не ясно, что с ними делать. Префиксы кодировки это нарушение POSIX. Нет там такой фигни. Или пути "/hd0/1/☺my_file" "/hd0/1/♥my_file" "/☺/hd0/1/♥my_file "/♥/hd0/1/☺my_file" должны указывать на один файл "/hd0/1/my_file"

Даже если "☺my_file" "♥my_file" "my_file" будут приниматься ядром как одинаковые это не избавит от проблем в существующем коде.

Пока префикс кодировки не будет убран, будут ошибки.
Карфаген должен быть разрушен.


Top
   
PostPosted: Sat Nov 26, 2016 11:32 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Простой тест показал, что всё хуже, чем казалось:
♥☺222.png валидное имя файла в Windows. Так что не ясно является строка "♥☺222.png" utf-8 кодировкой имени "☺222.png" или нет.
С чем всех и поздравляю.
Attachment:
11.png
11.png [ 68.68 KiB | Viewed 1900 times ]


Update.
Был неправ. символы ☺☻♥ двубайтные.


Top
   
PostPosted: Sat Nov 26, 2016 11:36 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Я вообще не могу понять, как у вас такие пути получаются? Зачем строке маркер, если она будет обрабатываться? А если нужно обработать строку с маркером, почему нельзя использовать указатель+1?


Top
   
PostPosted: Sat Nov 26, 2016 11:41 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Ну я предлагал такой вариант
кодировку сюда
Code:
  * +20 = +0x14: byte: 0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

и вот это
Code:
(указатель | 0x80000000)


На ЯВУ это могут быть разные обёртки с суффиксами A и W.
Или же просто всюду использовать юникод(кому как нравится).


Top
   
PostPosted: Sat Nov 26, 2016 11:43 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Pathoswithin
Смотри мой пост выше. Как сейчас файловая система будет обрабатывать имя "♥♥events_subsystem.txt ?"
Карфаген надо разрушать


Top
   
PostPosted: Sat Nov 26, 2016 11:46 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Pathoswithin wrote:
Я вообще не могу понять, как у вас такие пути получаются? Зачем строке маркер, если она будет обрабатываться? А если нужно обработать строку с маркером, почему нельзя использовать указатель+1?

Существующий код не предполагает, что имени файла присутствует префикс кодировки, который не является частью имени. Потому, что такое предположение не соответствует POSIX.


Top
   
PostPosted: Sat Nov 26, 2016 11:52 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 439
В виндовс есть супер префикс \\?\
Вроде никому не мешает, но написано, что не все функции его понимают.

Чем моя идея с префиксом по минусовому индексу(смещению) не понравилась?


Top
   
PostPosted: Sat Nov 26, 2016 11:57 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Siemargl, префикс, он ведь необязательный. Но по минусовому смещению что-то всё равно будет. Если я тебя правильно понял, конечно.


Top
   
PostPosted: Sat Nov 26, 2016 11:58 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Siemargl
1.Минусовый префикс коварная вещь. Он может попасть в несуществующую предыдущую страницу.
2.Это костыль к POSIX. По этой причине в gnu софте придётся писать спец. куски кода для Колибри.


Top
   
PostPosted: Sun Nov 27, 2016 12:26 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Quote:
Serge « Вс ноя 27, 2016 2:10 am » Siemargl: в любом случае эти символы уже не годятся для префиксов. Они валидные.
Судя по wiki для NTFS в пространстве имён Posix допустимы любые символы из кодировки UTF-16, кроме U+0000 (NUL) и «/» (косая черта).
Выходит, никакие не годятся.


Top
   
PostPosted: Sun Nov 27, 2016 12:56 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 439
Serge wrote:
Siemargl
1.Минусовый префикс коварная вещь. Он может попасть в несуществующую предыдущую страницу.
2.Это костыль к POSIX. По этой причине в gnu софте придётся писать спец. куски кода для Колибри.

1. Для argv[0] этот подход годится. Для файловых функций - не очень.
2. писать все= придется. можно лишь попытаться минимизировать.
POSIXовый бардак в API, с другой стороны, пора бы уже начать хоронить, а не равняться на него.

Кстати, ты вот ссылаешься на POSIX, а там AFAIK, вопрос кодировок то и не определен.

Я предлагаю выработать свой подход.
Пока озвучены варианты
- CleverMouse - привести все к UTF-8 (возможно, предложение касалось только argv[0])
- Pathos - префиксы, сюда же варианты их модификаций - двухбайтовые и по отрицательному смещению
- Win-подход - сделать группы функций, для каждой кодировки (UTF8, UTF16LE, CP866)


Last edited by Siemargl on Sun Nov 27, 2016 1:05 am, edited 1 time in total.

Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 236 posts ]  Go to page Previous 16 7 8 9 1016 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


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