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

Разработка Far.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Latest post of the previous page:

Skirda wrote:заноси на мантис, со ссылкой на 231
Ага, и ссылку на эту Тему в Additional information. :)
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

Мням... для начала пробуем это и говорим, что изменилось в плане эхотага :oops:
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post 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 и факта наличия файла, редактор открывает, что указано, новое или существующее.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

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

С остальным все по старому: если имя файла указываем, то независимо от EF_CREATENEW и факта наличия файла, редактор открывает, что указано, новое или существующее.
Это... почти как у open() флаг O_CREAT - если файл есть, флаг ничего не делает, если нету, то создает.
А в ФАРе флаг EF_CREATENEW допускает указание в качестве имени файла пустоты, но если файл есть, то откроется...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Хорошо, пусть такая ясность, чем никакая.

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

Code: Select all

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

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

Code: Select all

$e = $Far.CreateEditor()
$e.IsNew = 1
$e.Open()
Примеры на PowerShell, но это неважно, идею они вроде выражают.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Это обсуждение и тестовое изменение получило какое-то развитие? Вроде нет, а планируется (в принципе, сроки пока не интересуют)?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

планируется.
планируется весь код переделать.
переделать так, чтобы filelist не конструировал имя (как и АПИ-функция Editor), а просто тупо все передавал в fileeditor, а этот в свою очередь........
вроде как на мантисе есть что-то про это (если не ошибаюсь)
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

В Фар3 может удалить этот флаг EF_CREATENEW, раз он не используется?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

EF_CREATENEW

Post 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})
Баг?
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: EF_CREATENEW

Post by 2useven10 »

скорее наоборот, ошибка должна быть если этот флаг указан и файл существует.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: EF_CREATENEW

Post by John Doe »

Да, пожалуй описание можно понять двояко.
В любом случае, это не оно:

Code: Select all

lua:editor.Editor("qwerty",nil,nil,nil,nil,nil,"EF_CREATENEW")
Существующий файл будет открыт без ошибок.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: EF_CREATENEW

Post by Skirda »

Изначально под EF_CREATENEW подразумевалось - "если этого файла нет, то вернуть ошибку и не открывать пустой редактор" (ну или наоборот - "Эй, Far, отсутствие файла не считается ошибкой, открой новый").
Я так думаю, что это баг Far`а.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Этот флаг сейчас действует если в качестве имени задана пустая строка.
Вряд ли это правильно.

Плюс, (и это наверно отдельный вопрос) у редакторов с пустым именем есть проблемы.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

John Doe wrote:Этот флаг сейчас действует если в качестве имени задана пустая строка.
Вряд ли это правильно.
А Shift-F4 Ctrl-Y Enter это тоже неправильно?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Неправильно то, что флаг действует только при пустом имени.
Post Reply

Return to “Development”