Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Aug 21, 2019 7:33 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 236 posts ]  Go to page Previous 112 13 14 15 16 Next
Author Message
PostPosted: Sat Dec 10, 2016 4:48 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Можно и так, в регистре или в структуре. Только наверно уже лучше везде использовать 0 = default, 1 = cp866, 2 = UTF-16, 3 = UTF-8. Думаю, чтение папки тоже ещё не поздно сменить, вряд ли кто-то уже использовал UTF-16.


Top
   
PostPosted: Sat Dec 10, 2016 4:52 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Pathoswithin wrote:
чтение папки тоже ещё не поздно сменить, вряд ли кто-то уже использовал UTF-16.
Вообще-то я использовал. А зачем там что-то менять? Сделай новую функцию тогда.
Pathoswithin wrote:
Только наверно уже лучше везде использовать 0 = default, 1 = cp866, 2 = UTF-16, 3 = UTF-8.
Сейчас ведь так
Code:
  * +8: dword: encoding:
    * 0 = cp866 -> byte per char
    * 1 = UTF-16LE -> word per char
Просто добавить сюда 2 = UTF8.


Top
   
PostPosted: Sat Dec 10, 2016 5:13 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Так в функциях 4 и 71.
1 будет значить именно ср866, а 0 продолжит поддерживать маркеры, может кому-то понравится этот подход.


Top
   
PostPosted: Sat Dec 10, 2016 5:29 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Ну, в принципе, если всё равно функции будут новые, то и делать там можно как угодно.
Pathoswithin wrote:
0 продолжит поддерживать маркеры, может кому-то понравится этот подход.
Дополнительные возможности — это хорошо. Если будет время, тогда может и я добавлю SetEncoding.


Top
   
PostPosted: Sat Dec 10, 2016 5:47 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Нет, кодировка для чтения папки проверяется глубоко в драйверах ФС, так что либо менять, либо не менять.


Top
   
PostPosted: Thu Dec 15, 2016 9:26 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
revision #6798

Осталось окончательно решить с argv[0].


Top
   
PostPosted: Sat Dec 17, 2016 1:55 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Если теперь можно передавать параметры в различных кодировках, то было бы логичным сделать возможность также и получать их в удобной для конкретного приложения кодировке.

Pathoswithin, ты сейчас сделал не для всех функций.
Хотелось бы ещё эти
Code:
{18.6}    Function  SaveRamDisk(Path: PChar): Dword; StdCall; External 'KolibriOS';
{37.4}    Function  LoadCursorFromFile(Path: PChar): Dword; StdCall; External 'KolibriOS';
{48.8}    Function  SetSkin(Path: PChar): Integer; StdCall; External 'KolibriOS';
{71.1}    Procedure SetWindowCaption(Caption: PChar); StdCall; External 'KolibriOS';

А вот эти вроде бы не нужно
Code:
{68.16}   Function  GetDriver(Name: PChar): Dword; StdCall; External 'KolibriOS';
{68.21}   Function  LoadDriver(Name, CmdLine: PChar): Dword; StdCall; External 'KolibriOS';
{68.22}   Function  SharedMemoryOpen(Name: PChar; Bytes: Dword; Flags: Dword): Pointer; StdCall; External 'KolibriOS';
{68.23}   Function  SharedMemoryClose(Name: PChar): Dword; StdCall; External 'KolibriOS';


Top
   
PostPosted: Sun Dec 18, 2016 6:19 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
revision #6800

18.6 думаю тоже не нужно.
71.1 сложно сделать иначе, нужно где-то хранить кодировку.


Top
   
PostPosted: Sun Dec 18, 2016 10:25 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Pathoswithin wrote:
71.1 сложно сделать иначе, нужно где-то хранить кодировку.
Можно добавить новое поле APPDATA.Encoding.
Ты ведь всё равно оставил способ задания кодировки посредством префиксов. По умолчанию без префикса это ASCII. Можно потом будет добавить новую сисфункцию SetEncoding, которая будет изменять значение кодировки по умолчанию, то есть если префикс отсутствует.
Pathoswithin wrote:
18.6 думаю тоже не нужно.
Ну это, конечно, не так уж необходимо, чтобы использовать для SaveRamDisk юникодный путь. Просто другие подобные функции продублированы, а эта нет.


Top
   
PostPosted: Wed Dec 21, 2016 3:26 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
revision #6802

Так что с argv[0], маркер сильно мешает?


Top
   
PostPosted: Wed Dec 21, 2016 4:19 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Для argv[0] кодировку можно задавать в заголовке приложения вместо поля version, которое по факту не используется. Там как раз version = 1, а это ASCII.
Вот из справки
Quote:
Format of an absolute path:
/base/number/dir1/dir2/.../dirn/file,
А маркер можно добавлять, если encoding в заголовке будет равно 0. Только тут не совсем логично получается. Мы же не передаём, а получаем, то есть, маркер и не нужен вовсе, а просто нужна строка в желаемой кодировке. Ну и пусть для параметров тоже encoding учитывается.


Top
   
PostPosted: Wed Dec 21, 2016 8:00 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Pathoswithin
Если маркер будет в формате "/<байт маркера>/остальной путь", то нормально. Главное, чтобы путь оставался абсолютным, т.е начинался с / Тоже самое для текущего каталога.


Top
   
PostPosted: Wed Dec 21, 2016 8:55 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Serge wrote:
Если маркер будет в формате
А он вообще зачем? Разве без маркера ты не будешь знать кодировку?
Serge wrote:
Тоже самое для текущего каталога.
А для текущего у нас теперь вот http://websvn.kolibrios.org/filedetails ... #line-1723 Причём, кодировку можно также задать и посредством префиксов(это если указать encoding = 0).


Top
   
PostPosted: Wed Dec 21, 2016 9:57 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
0CodErr wrote:
А он вообще зачем? Разве без маркера ты не будешь знать кодировку?
Вопрос был про маркер. Если маркер будет определять кодировку, как её без маркера узнать.


Top
   
PostPosted: Wed Dec 21, 2016 10:19 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Serge, cтранные ты вопросы задаёшь :lol:
Конкретно сейчас это UTF8.
Но её можно будет(надеюсь :) ) задавать в заголовке приложения. Опять же, если ты её сам задал, то как ты можешь её не знать?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 236 posts ]  Go to page Previous 112 13 14 15 16 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 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