Путь приложения
-
Можно и так, в регистре или в структуре. Только наверно уже лучше везде использовать 0 = default, 1 = cp866, 2 = UTF-16, 3 = UTF-8. Думаю, чтение папки тоже ещё не поздно сменить, вряд ли кто-то уже использовал UTF-16.
Вообще-то я использовал. А зачем там что-то менять? Сделай новую функцию тогда.Pathoswithin wrote:чтение папки тоже ещё не поздно сменить, вряд ли кто-то уже использовал UTF-16.
Сейчас ведь такPathoswithin wrote:Только наверно уже лучше везде использовать 0 = default, 1 = cp866, 2 = UTF-16, 3 = UTF-8.
Code: Select all
* +8: dword: encoding:
* 0 = cp866 -> byte per char
* 1 = UTF-16LE -> word per char
Так в функциях 4 и 71.
1 будет значить именно ср866, а 0 продолжит поддерживать маркеры, может кому-то понравится этот подход.
1 будет значить именно ср866, а 0 продолжит поддерживать маркеры, может кому-то понравится этот подход.
Ну, в принципе, если всё равно функции будут новые, то и делать там можно как угодно.
Дополнительные возможности — это хорошо. Если будет время, тогда может и я добавлю SetEncoding.Pathoswithin wrote:0 продолжит поддерживать маркеры, может кому-то понравится этот подход.
Нет, кодировка для чтения папки проверяется глубоко в драйверах ФС, так что либо менять, либо не менять.
revision #6798
Осталось окончательно решить с argv[0].
Осталось окончательно решить с argv[0].
Если теперь можно передавать параметры в различных кодировках, то было бы логичным сделать возможность также и получать их в удобной для конкретного приложения кодировке.
Pathoswithin, ты сейчас сделал не для всех функций.
Хотелось бы ещё эти
А вот эти вроде бы не нужно
Pathoswithin, ты сейчас сделал не для всех функций.
Хотелось бы ещё эти
Code: Select all
{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: Select all
{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';
revision #6800
18.6 думаю тоже не нужно.
71.1 сложно сделать иначе, нужно где-то хранить кодировку.
18.6 думаю тоже не нужно.
71.1 сложно сделать иначе, нужно где-то хранить кодировку.
Можно добавить новое поле APPDATA.Encoding.Pathoswithin wrote:71.1 сложно сделать иначе, нужно где-то хранить кодировку.
Ты ведь всё равно оставил способ задания кодировки посредством префиксов. По умолчанию без префикса это ASCII. Можно потом будет добавить новую сисфункцию SetEncoding, которая будет изменять значение кодировки по умолчанию, то есть если префикс отсутствует.
Ну это, конечно, не так уж необходимо, чтобы использовать для SaveRamDisk юникодный путь. Просто другие подобные функции продублированы, а эта нет.Pathoswithin wrote:18.6 думаю тоже не нужно.
revision #6802
Так что с argv[0], маркер сильно мешает?
Так что с argv[0], маркер сильно мешает?
Для argv[0] кодировку можно задавать в заголовке приложения вместо поля version, которое по факту не используется. Там как раз version = 1, а это ASCII.
Вот из справки
Вот из справки
А маркер можно добавлять, если encoding в заголовке будет равно 0. Только тут не совсем логично получается. Мы же не передаём, а получаем, то есть, маркер и не нужен вовсе, а просто нужна строка в желаемой кодировке. Ну и пусть для параметров тоже encoding учитывается.Format of an absolute path:
/base/number/dir1/dir2/.../dirn/file,
Pathoswithin
Если маркер будет в формате "/<байт маркера>/остальной путь", то нормально. Главное, чтобы путь оставался абсолютным, т.е начинался с / Тоже самое для текущего каталога.
Если маркер будет в формате "/<байт маркера>/остальной путь", то нормально. Главное, чтобы путь оставался абсолютным, т.е начинался с / Тоже самое для текущего каталога.
А он вообще зачем? Разве без маркера ты не будешь знать кодировку?Serge wrote:Если маркер будет в формате
А для текущего у нас теперь вот http://websvn.kolibrios.org/filedetails ... #line-1723 Причём, кодировку можно также задать и посредством префиксов(это если указать encoding = 0).Serge wrote:Тоже самое для текущего каталога.
Вопрос был про маркер. Если маркер будет определять кодировку, как её без маркера узнать.0CodErr wrote:А он вообще зачем? Разве без маркера ты не будешь знать кодировку?
Serge, cтранные ты вопросы задаёшь
Конкретно сейчас это UTF8.
Но её можно будет(надеюсь ) задавать в заголовке приложения. Опять же, если ты её сам задал, то как ты можешь её не знать?
Конкретно сейчас это UTF8.
Но её можно будет(надеюсь ) задавать в заголовке приложения. Опять же, если ты её сам задал, то как ты можешь её не знать?
Who is online
Users browsing this forum: Ahrefs [Bot] and 5 guests