OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 16 Июнь, 2021 03:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 15 Февраль, 2020 11:58 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Добавить второй уровень рабочих папок.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2020 12:30 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3091
Поддерживаю предложение.
Бывает необходимо в ряде случаев держать надстройки ББ в отдельной директории, чтобы безобидно обновлять основной дистрибутив. Перевод, различные "помогаторы" и прочие расширения. Также иметь несколько вариантов надстроек (сборок) для разных задач.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2020 13:58 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 73
Откуда: Equestria
Можно решить через установку специальнго Files.Directory сделанного по аналогии с HostPackedFiles, но с поиском по реальной ФС.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2020 18:09 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 248
Откуда: Austria, Bruck
Поясните, пожалуйста, как это должно быть?

Традиционный для Юникса механизм связывания (bind) на уровне папки - не то? Или аналог UnionFS?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2020 19:03 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3091
Сейчас это сделано как "теневая директория".
Если файл не удается открыть из рабочего каталога, то делается попытка открыть файл из теневого каталога.
Код:
OpenFile(s, fname, ref, res);
IF ((res = fileNotFoundErr) OR (res = pathNotFoundErr)) & (loc.rootLen > 0) THEN
   GetShadowDir(loc, fname);
   Append(fname, name, "", loc.maxLen, fname);
   f := ThisFile(fname);
   IF f # NIL THEN
      IF ~shrd OR (f.state = exclusive) THEN loc.res := Error(sharingErr); RETURN NIL
      ELSE loc.res := ok; RETURN f
      END
   END;
   OpenFile(s, fname, ref, res)
END;


Так что предлагаю сделать рекурсию теневых каталогов. Так было бы решение для любого числа рабочих каталогов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Февраль, 2020 00:00 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сейчас сохранение настроек в файле .ini делается так, что там прописывается абсолютный путь к рабочей папке. Что просто глупо -- разрушается переносимость рабочей папки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Февраль, 2020 09:46 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 248
Откуда: Austria, Bruck
Info21 писал(а):
Сейчас сохранение настроек в файле .ini делается так, что там прописывается абсолютный путь к рабочей папке. Что просто глупо -- разрушается переносимость рабочей папки.


Чтобы задавать относительные пути надо задать базовую точку (каталог). В норме - домашний каталог. Но сколько пользователей Windows им пользуется?

Кроме того, получается надо таки разделять рабочий каталог пользователя и системный каталог ББ (что сейчас не совсем так). Как быть если имена подсистем в системном каталоге и рабочем совпадают?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Февраль, 2020 09:59 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Вообще ничего не надо там фиксировать.

По правилам ББ: сохраняем .ini в рабочую папку -- и там же его ищем, независимо от того, куда папка переехала.

Так работали настройки в базовой сборке от И-21. Центр чего-того, сообщал ИАД, "изучил" -- и сделал фигню. Зато всё как у больших.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Февраль, 2020 11:12 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 248
Откуда: Austria, Bruck
Info21 писал(а):
По правилам ББ: сохраняем .ini в рабочую папку -- и там же его ищем, независимо от того, куда папка переехала.

Извините, не понял. "Рабочая папка" = "текущий каталог\папка"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Февраль, 2020 19:01 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
См. о параметре /use при вызове ББ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 00:49 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2411
Откуда: Россия, Томск
В ini-файлах тоже можно сделать "теневые параметры".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 05:06 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3091
Предлагаю, чтобы не добавлять дополнительные ключи и переменные окружения, сделать перечисление директорий через ";"

К примеру, вот такой скрипт запускает Блэкбокс
Код:
#!/bin/sh

bbGUIdir="/usr/lib/blackbox"

env \
  BB_PRIMARY_DIR="${bbGUIdir}" BB_SECONDARY_DIR="/home/dia/blackbox;$PWD" \
  ${bbGUIdir}/blackbox $* &


Переменная окружения задаёт две рабочие директории, сначала "вторичную", откуда брать надстройки, а потом третичную — рабочую из переменной $PWD (место запуска).
Код:
BB_SECONDARY_DIR="/home/dia/blackbox;$PWD"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 06:48 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 73
Откуда: Equestria
По моему в линукс-версии хорошо бы действовать по канонами никсов. Приоритет директорий слева (высший) направо (низший) и сепаратор в виде двоеточия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 08:41 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1371
По канонам программы прибиваются гвоздями к определённым местам.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 10:41 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3091
Получается, что
Код:
BB_SECONDARY_DIR="$PWD:/home/dia/blackbox"


А как лучше для Windows в ярлыке прописывать? Там двоеточие используется для обозначения дисков.

Код:
/USE "C://users/Ivan/settings;C://users/Ivan/projects"


Код:
/USE "../settings;../projects"


Как-то так?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 19:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Надо делать как можно проще, чётче и читабельней.

Для "промежуточной" папки я бы сделал /Use2 "........"
Параметры строки уже парсятся -- добавить еще один какая проблема.
Добавлять какую-то фигню для парсинга самого параметра зачем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Февраль, 2020 21:10 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1371
Иван Денисов писал(а):
Предлагаю, чтобы не добавлять дополнительные ключи и переменные окружения, сделать перечисление директорий через ";"

Вы упускаете из виду, что одна из них должна быть основной. Нехорошо, если затеряется в общем списке. Например, открыли файл, отредактировали, сохранили и где потом его искать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 25 Февраль, 2020 01:44 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
В каком виде нужен второй уровень?

Код:
первый-уровень/ -- базовая сборка
  Sytem/ Text/ Dev/ ...
второй-уровень/ -- доп. подсистемы. Без пересчения с первым? Или нужно, чтобы пересечение поддерживалось?
 ...
третьий-уровень/ -- рабочая папка, сюда идет запись


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 25 Февраль, 2020 06:21 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3091
Пересечения должны поддерживаться, так как иногда расширения, к примеру, заменяют файлы меню.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 25 Февраль, 2020 10:49 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
Если только для меню, то вопрос, на мой взгляд открытый.

Например, у меня настроено какое-то меню. Например, в Attributes добавил какие-то еще команды. Или в контекстное для "Text". Это же мое право как пользователя его настроить? И тут какое-то расширение это меню заменяет .... на что?

Если же речь идет о расширении меню, то пересечения не возникает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2021, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB