OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 13 Декабрь, 2019 05:34

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 30 Сентябрь, 2009 20:52 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Эффект проявился в Linux/wine где допустимы пути "/x/y/../z". Если в windows это не допустимо, то ошибки нет.

Файл должен появляться в той локации, где был создан New:
Цитата:
PROCEDURE (f: File) Register (name: Name; type: Type; ask: BOOLEAN; OUT res: INTEGER)
...

PROCEDURE (d: Directory) New (loc: Locator; ask: BOOLEAN): File
NEW, ABSTRACT
Returns a new file object (or NIL if this is not possible). This file is anonymous, i.e., not yet registered in the directory. (In host file systems where anonymous files are not directly supported, they may appear under temporary names in subdirectory loc.) If the file is registered later, it will appear in the subdirectory specified by loc.
Т.к. Register не проверят, что в name только имя, --- относит. путь + имя нивелирует "it will appear in the subdirectory specified by loc".
Код:
   PROCEDURE (f: File) Register (name: Files.Name; type: Files.Type; ask: BOOLEAN; OUT res: INTEGER);
      VAR b: INTEGER; fname: FullName;
   BEGIN
      ASSERT(f.state = new, 20); ASSERT(name # "", 21);
      Append(f.loc.path, name, type, f.loc.maxLen, fname);
      CheckDelete(fname, f.loc.path, ask, res);
      ASSERT(res # 87, 100);


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 01 Октябрь, 2009 01:41 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
А каким должно быть поведение? Вышибать по ASSERTу, если в name передано имя с путём? Имя файла то может прийти откуда угодно, всё не проконтролируешь. Проще доку исправить


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 01 Октябрь, 2009 10:03 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Иван Горячев писал(а):
А каким должно быть поведение?
res = 1 invalid parameter (name or locator)

Хотя там и ASSERT указан
Pre
name is a file name 22


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

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


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

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


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

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