Board.KolibriOS.org
https://board.kolibrios.org/

Путь приложения
https://board.kolibrios.org/viewtopic.php?f=2&t=3429
Page 14 of 16

Author:  Pathoswithin [ Sat Dec 10, 2016 4:48 pm ]
Post subject:  Re: Путь приложения

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

Author:  0CodErr [ Sat Dec 10, 2016 4:52 pm ]
Post subject:  Re: Путь приложения

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.

Author:  Pathoswithin [ Sat Dec 10, 2016 5:13 pm ]
Post subject:  Re: Путь приложения

Так в функциях 4 и 71.
1 будет значить именно ср866, а 0 продолжит поддерживать маркеры, может кому-то понравится этот подход.

Author:  0CodErr [ Sat Dec 10, 2016 5:29 pm ]
Post subject:  Re: Путь приложения

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

Author:  Pathoswithin [ Sat Dec 10, 2016 5:47 pm ]
Post subject:  Re: Путь приложения

Нет, кодировка для чтения папки проверяется глубоко в драйверах ФС, так что либо менять, либо не менять.

Author:  Pathoswithin [ Thu Dec 15, 2016 9:26 pm ]
Post subject:  Re: Путь приложения

revision #6798

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

Author:  0CodErr [ Sat Dec 17, 2016 1:55 pm ]
Post subject:  Re: Путь приложения

Если теперь можно передавать параметры в различных кодировках, то было бы логичным сделать возможность также и получать их в удобной для конкретного приложения кодировке.

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';

Author:  Pathoswithin [ Sun Dec 18, 2016 6:19 am ]
Post subject:  Re: Путь приложения

revision #6800

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

Author:  0CodErr [ Sun Dec 18, 2016 10:25 pm ]
Post subject:  Re: Путь приложения

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

Author:  Pathoswithin [ Wed Dec 21, 2016 3:26 pm ]
Post subject:  Re: Путь приложения

revision #6802

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

Author:  0CodErr [ Wed Dec 21, 2016 4:19 pm ]
Post subject:  Re: Путь приложения

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

Author:  Serge [ Wed Dec 21, 2016 8:00 pm ]
Post subject:  Re: Путь приложения

Pathoswithin
Если маркер будет в формате "/<байт маркера>/остальной путь", то нормально. Главное, чтобы путь оставался абсолютным, т.е начинался с / Тоже самое для текущего каталога.

Author:  0CodErr [ Wed Dec 21, 2016 8:55 pm ]
Post subject:  Re: Путь приложения

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

Author:  Serge [ Wed Dec 21, 2016 9:57 pm ]
Post subject:  Re: Путь приложения

0CodErr wrote:
А он вообще зачем? Разве без маркера ты не будешь знать кодировку?
Вопрос был про маркер. Если маркер будет определять кодировку, как её без маркера узнать.

Author:  0CodErr [ Wed Dec 21, 2016 10:19 pm ]
Post subject:  Re: Путь приложения

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

Page 14 of 16 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/