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
Мням... для начала пробуем
это и говорим, что изменилось в плане эхотага
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
Если в параметрах функции 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
Неправильно то, что флаг действует только при пустом имени.