Page 2 of 3

Re: Зачем нужен EF_CREATENEW?

Posted: Thu 14 Aug, 2008 17:51
by HaRT

Latest post of the previous page:

Skirda wrote:заноси на мантис, со ссылкой на 231
Ага, и ссылку на эту Тему в Additional information. :)

Re: Зачем нужен EF_CREATENEW?

Posted: Fri 15 Aug, 2008 10:12
by NightRoman

Re: Зачем нужен EF_CREATENEW?

Posted: Fri 15 Aug, 2008 15:12
by Skirda
Мням... для начала пробуем это и говорим, что изменилось в плане эхотага :oops:

Re: Зачем нужен EF_CREATENEW?

Posted: Fri 15 Aug, 2008 15:55
by NightRoman
С пустым именем (не заданным) имеем

Code: Select all

$e = $Far.CreateEditor()
$e.IsNew = 0
$e.Open()
# - ошибка открытия файла

Code: Select all

$e = $Far.CreateEditor()
$e.IsNew = 1
$e.Open()
# открыт новый C:\TEMP\?New File? в текущей папке
То есть планируется использовать EF_CREATENEW как подтверждение, что пустое имя не сдури было задано? Ну пусть хоть так... Но по мне лучше, если имя пустое, но это и трактовать как желание открыть новый файл. Но я не против такой трактовки EF_CREATENEW.

С остальным все по старому: если имя файла указываем, то независимо от EF_CREATENEW и факта наличия файла, редактор открывает, что указано, новое или существующее.

Re: Зачем нужен EF_CREATENEW?

Posted: Fri 15 Aug, 2008 16:29
by Skirda
NightRoman wrote:То есть планируется использовать EF_CREATENEW как подтверждение, что пустое имя не сдури было задано? Ну пусть хоть так... Но по мне лучше, если имя пустое, но это и трактовать как желание открыть новый файл. Но я не против такой трактовки EF_CREATENEW.

С остальным все по старому: если имя файла указываем, то независимо от EF_CREATENEW и факта наличия файла, редактор открывает, что указано, новое или существующее.
Это... почти как у open() флаг O_CREAT - если файл есть, флаг ничего не делает, если нету, то создает.
А в ФАРе флаг EF_CREATENEW допускает указание в качестве имени файла пустоты, но если файл есть, то откроется...

Re: Зачем нужен EF_CREATENEW?

Posted: Fri 15 Aug, 2008 17:06
by NightRoman
Хорошо, пусть такая ясность, чем никакая.

Но по-моему, вот этот код должен просто открыть редактор с новым файлом:

Code: Select all

$e = $Far.CreateEditor()
$e.Open()
Что может быть более интуитивно?

Менее интуитивно вот так:

Code: Select all

$e = $Far.CreateEditor()
$e.IsNew = 1
$e.Open()
Примеры на PowerShell, но это неважно, идею они вроде выражают.

Re: Зачем нужен EF_CREATENEW?

Posted: Tue 06 Jan, 2009 16:53
by NightRoman
Это обсуждение и тестовое изменение получило какое-то развитие? Вроде нет, а планируется (в принципе, сроки пока не интересуют)?

Re: Зачем нужен EF_CREATENEW?

Posted: Tue 06 Jan, 2009 17:42
by Skirda
планируется.
планируется весь код переделать.
переделать так, чтобы filelist не конструировал имя (как и АПИ-функция Editor), а просто тупо все передавал в fileeditor, а этот в свою очередь........
вроде как на мантисе есть что-то про это (если не ошибаюсь)

Re: Зачем нужен EF_CREATENEW?

Posted: Sat 14 Jan, 2012 18:15
by NightRoman
В Фар3 может удалить этот флаг EF_CREATENEW, раз он не используется?

EF_CREATENEW

Posted: Mon 28 Jul, 2014 15:42
by John Doe
http://api.farmanager.com/ru/service_functions/editor.html wrote:EF_CREATENEW Создать новый файл на диске. Вызов редактора с этим флагом аналогичен вызову редактора по Shift+F4 в панелях.
Если в параметрах функции Editor этот флаг не указан, то как я понимаю имя несуществующего файла должно приводить к ошибке.

Однако, как ни в чём ни бывало открывается пустой редактор.

Code: Select all

lua:editor.Editor("qwerty",nil,nil,nil,nil,nil,{EF_NONMODAL=1,EF_IMMEDIATERETURN=1})
Баг?

Re: EF_CREATENEW

Posted: Mon 28 Jul, 2014 15:46
by 2useven10
скорее наоборот, ошибка должна быть если этот флаг указан и файл существует.

Re: EF_CREATENEW

Posted: Mon 28 Jul, 2014 15:49
by John Doe
Да, пожалуй описание можно понять двояко.
В любом случае, это не оно:

Code: Select all

lua:editor.Editor("qwerty",nil,nil,nil,nil,nil,"EF_CREATENEW")
Существующий файл будет открыт без ошибок.

Re: EF_CREATENEW

Posted: Mon 28 Jul, 2014 16:19
by Skirda
Изначально под EF_CREATENEW подразумевалось - "если этого файла нет, то вернуть ошибку и не открывать пустой редактор" (ну или наоборот - "Эй, Far, отсутствие файла не считается ошибкой, открой новый").
Я так думаю, что это баг Far`а.

Re: Зачем нужен EF_CREATENEW?

Posted: Sun 03 Aug, 2014 17:07
by John Doe
Этот флаг сейчас действует если в качестве имени задана пустая строка.
Вряд ли это правильно.

Плюс, (и это наверно отдельный вопрос) у редакторов с пустым именем есть проблемы.

Re: Зачем нужен EF_CREATENEW?

Posted: Mon 04 Aug, 2014 06:19
by Skirda
John Doe wrote:Этот флаг сейчас действует если в качестве имени задана пустая строка.
Вряд ли это правильно.
А Shift-F4 Ctrl-Y Enter это тоже неправильно?

Re: Зачем нужен EF_CREATENEW?

Posted: Mon 04 Aug, 2014 08:11
by John Doe
Неправильно то, что флаг действует только при пустом имени.