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

Разработка Far.
User avatar
HaRT
Moderator
Posts: 8075
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Thu 14 Aug, 2008 17:51

Latest post of the previous page:

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

User avatar
NightRoman
Posts: 5852
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Fri 15 Aug, 2008 10:12


User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Fri 15 Aug, 2008 15:12

Мням... для начала пробуем это и говорим, что изменилось в плане эхотага :oops:
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5852
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Fri 15 Aug, 2008 15:55

С пустым именем (не заданным) имеем

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: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Fri 15 Aug, 2008 16:29

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: 5852
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Fri 15 Aug, 2008 17:06

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

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

Code: Select all

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

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

Code: Select all

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

User avatar
NightRoman
Posts: 5852
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Tue 06 Jan, 2009 16:53

Это обсуждение и тестовое изменение получило какое-то развитие? Вроде нет, а планируется (в принципе, сроки пока не интересуют)?

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Tue 06 Jan, 2009 17:42

планируется.
планируется весь код переделать.
переделать так, чтобы filelist не конструировал имя (как и АПИ-функция Editor), а просто тупо все передавал в fileeditor, а этот в свою очередь........
вроде как на мантисе есть что-то про это (если не ошибаюсь)
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5852
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Post by NightRoman » Sat 14 Jan, 2012 18:15

В Фар3 может удалить этот флаг EF_CREATENEW, раз он не используется?

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

EF_CREATENEW

Post by John Doe » Mon 28 Jul, 2014 15:42

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: 3010
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 82 times

Re: EF_CREATENEW

Post by 2useven10 » Mon 28 Jul, 2014 15:46

скорее наоборот, ошибка должна быть если этот флаг указан и файл существует.

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

Re: EF_CREATENEW

Post by John Doe » Mon 28 Jul, 2014 15:49

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

Code: Select all

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

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: EF_CREATENEW

Post by Skirda » Mon 28 Jul, 2014 16:19

Изначально под EF_CREATENEW подразумевалось - "если этого файла нет, то вернуть ошибку и не открывать пустой редактор" (ну или наоборот - "Эй, Far, отсутствие файла не считается ошибкой, открой новый").
Я так думаю, что это баг Far`а.
We are the Borg. You will be assimilated.
So Say We All!

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

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

Post by John Doe » Sun 03 Aug, 2014 17:07

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

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

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Mon 04 Aug, 2014 06:19

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: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

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

Post by John Doe » Mon 04 Aug, 2014 08:11

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

User avatar
DrKnS
Posts: 4617
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 121 times
Contact:

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

Post by DrKnS » Mon 04 Aug, 2014 10:22

Давайте выкинем.

Post Reply

Return to “Development”