UTF-8 file path input, unicode names for apps and libs

git-svn-id: svn://kolibrios.org@6502 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pathoswithin
2016-08-25 19:30:08 +00:00
parent 5f44c836b1
commit 31fad3ee4a
9 changed files with 331 additions and 390 deletions

View File

@@ -3385,7 +3385,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
Параметры:
* eax = 68 - номер функции
* ebx = 19 - номер подфункции
* ecx = указатель на ASCIIZ-строку с полным путём к DLL
* ecx = указатель на строку с путём к DLL,
правила формирования строки указаны в описании функции 70.
Возвращаемое значение:
* eax = 0 - неудача
* иначе eax = указатель на таблицу экспорта DLL
@@ -3894,12 +3895,15 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* +12 = +0xC: dword: размер
* +16 = +0x10: dword: указатель на данные
* +20 = +0x14: ?: текстовая строка - путь к файлу, заканчивается нулём
или
или
* +20 = +0x14: byte: 0
* +21 = +0x15: dword: указатель на строку
Для ввода текста в кодировке UTF-16LE нужно расположить в начале строки
байт со значением 2, иначе будет использоваться кодировка cp866.
Чувствительность к регистру букв зависит от файловой системы.
Можно указать кодировку, поместив в начале строки байт со значениями:
* 1 = cp866
* 2 = UTF-16LE
* 3 = UTF-8
иначе будет использоваться кодировка cp866.
Формат строки:
/base/number/dir1/dir2/.../dirn/file,
где base/number идентифицирует устройство, на котором ищется файл:

View File

@@ -3348,7 +3348,8 @@ Remarks:
Parameters:
* eax = 68 - function number
* ebx = 19 - subfunction number
* ecx = pointer to ASCIIZ-string with the full path to DLL
* ecx = pointer to the string with path to DLL,
rules of path forming can be found in function 70 description.
Returned value:
* eax = 0 - failed
* otherwise eax = pointer to DLL export table
@@ -3849,11 +3850,15 @@ General format of the information structure:
* +12 = +0xC: dword: size
* +16 = +0x10: dword: pointer to data
* +20 = +0x14: ?: path - zero terminated string
or
or
* +20 = +0x14: byte: 0
* +21 = +0x15: dword: pointer to string
You may set encoding to UTF-16LE by starting the string with a byte with value 2,
otherwise will be used cp866. Case sensitivity depends on filesystem.
Case sensitivity depends on filesystem.
To set the encoding, put at the start of the string a byte with next values:
* 1 = cp866
* 2 = UTF-16LE
* 3 = UTF-8
otherwise will be used cp866.
Format of filename:
/base/number/dir1/dir2/.../dirn/file,
where base/number identifies device, on which file is located: