0CodErr wrote:С поиском понятно. Кроме "sys" можно примонтировать, например, "rd" или "hd0".
Я же говорю - на совести прикладного программиста, а то что ты привел с "sys" было действительно багом, но не моим, а предыдущего автора.
Я не могу ввести 100500 проверок для разных вариантов, учитывающих защиту от дурака во всех случаях, так как это сильно раздует код, а раздутому код в ядре делать нечего.
По мотивам требований отдельных трудящихся есть идея доработать функцию до следующего функционала.
1) Получить таблицу со всеми входами.
2) Добавить между указанными слотами новый слот (сдвинуть нижележащие данные на одну позицию вниз) и соответственно увеличить указатель количества входов.
3) Удалить указанный слот (сдвинуть нижележащие данные на одну позицию вверх) и соответственно уменьшить указатель количества входов.
Флаг блокировки естественно придется похерить.
Serge wrote:Mario_r4
Больше костылей, хороших и разных ?
Делай тогда двусвязный список. Проще будет манипулировать.
Не, ну я могу вообще не делать. Мне лично оно не нужно. А вообще... помнишь мы с тобой все еще обсуждаем вероятность реализации буфера обмена, года три уже. Вот как то так.
Заменяй лучше на имя в нижнем регистре, т.е. /kolibrios, чтобы было меньше проблем с фс чувствительными к регистру.
Также перед заливкой на SVN так стоит подумать насчет наличия коллизий, т.к. имена одинаковые. Хотя теоретически проблем быть не должно.
Поздно.
Imho все имена точек монтирования типа /rd/1 /hd0/1 /bd0/1 и т.д должны быть нечувствительны к регистру. это сильно упростит жизнь. На самом разделе, как файловой системе угодно.
Есть пара предложений:
1 вариант (простой): если SEARCHAP запустили с параметром, например /hd0/2/kolibri/, то программа монтирует параметр запуска как /KolibriOS и ничего не ищет
2 вариант (продвинутый):
- программа запущена с параметром -auto - автоматический поиск разделов
- любой другой параметр, который начинается со слеша / - установить папку как /KolibriOS
- запуск без параметра или с непонятным - открывается GUI. В окне - кнопка автоматический поиск и кнопка обзор берез OpenDialog для задания папки вручную.
Программа ведь не с потолка в названии содержит слово SEARCH - задавая заранее определенный путь надо быть заранее уверенным, что такой путь существует.
З.Ы. Поскольку моя идея была названа очередным "костылем", то я не хочу ее развивать дальше. Кому нужно пусть тот и допиливает или делает более идеальный вариант с пони и бабочками. Мне лично более того что есть не нужно.
Mario_r4 wrote:SVN r. 3663 - в ядро добавлена ф.30.3, для монтирования дополнительного системного каталога. Можно вызвать только один раз за сеанс (блокировка предусмотрена) и используется для программы SEARCHAP (залита в SVN r. 3650).
Прежде чем спрашивать "Нафига?" нужно прочитать целевую тему. Также предлагаю дальнейшие сообщения писать в целевой теме.
Теперь собственно по использованию - документацию надо читать внимательно:
Spoiler:---- Подфункция 3 - установить доп. системную директорию для ядра ----
Параметры:
* eax = 30 - номер функции
* ebx = 3 - номер подфункции
* ecx = указатель на блок данных:
sysdir_name rb 64
sysdir_path rb 64
Пример:
dir_name1 db 'KolibriOS',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
Возвращаемое значение:
* функция не возвращает значения
Замечания:
* Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
Погляди внимательно и ты увидишь свою ошибку.
Подсказка:
Spoiler:проблема в sysdir.path