EF_OPENMODE_USEEXISTING

Здесь можно сообщить о найденных багах в Far.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

EF_OPENMODE_USEEXISTING

Post by John Doe »

Code: Select all

local flags = {EF_NONMODAL=1,EF_IMMEDIATERETURN=1,EF_OPENMODE_USEEXISTING=1}
editor.Editor("C:\\AUTOEXEC.BAT",nil,nil,nil,nil,nil,flags)

far.Show(editor.Editor("C:\\AUTOEXEC.BAT",nil,nil,nil,nil,nil,"EF_OPENMODE_USEEXISTING"))
В последней строке делается попытка открыть в модальном редакторе уже открытый файл.

Однако обратно управление уже не возвращается даже после закрытия редактора: это можно понять по несрабатыванию far.Show (плюс остаётся значок макроса).
Фар после этого ведёт себя как ни в чём ни бывало, но при попытке выйти - виснет.
User avatar
zg
zero-gravity
Posts: 6038
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

EF_OPENMODE_USEEXISTING

Post by zg »

4306.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

EF_OPENMODE_USEEXISTING

Post by John Doe »

Теперь в этом случае возвращается EEC_MODIFIED, но файл ведь даже не открывался!
Хотелось бы видеть хотя бы EEC_LOADING_INTERRUPTED.
User avatar
zg
zero-gravity
Posts: 6038
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

EF_OPENMODE_USEEXISTING

Post by zg »

John Doe wrote:Теперь в этом случае возвращается EEC_MODIFIED, но файл ведь даже не открывался!
что возвращается, если второй редактор — немодальный?
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

EF_OPENMODE_USEEXISTING

Post by John Doe »

Если второй редактор открывать с теми же флагами, что и первый, то значение возвращается в соответствии с документацией, т.е. EEC_MODIFIED.
User avatar
zg
zero-gravity
Posts: 6038
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

EF_OPENMODE_USEEXISTING

Post by zg »

в чём разница?
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

EF_OPENMODE_USEEXISTING

Post by John Doe »

1. В случае немодального редактора он или реально открывается, или (если уже открыт) переключаемся в уже открытый.
Возвращаемое значение используется только чтобы убедиться, что редактор открылся (т.е. что не EEC_OPEN_ERROR/EEC_LOADING_INTERRUPTED).

2. В случае модального редактора возвращаемое значение используется ещё и для того, чтобы определить, были ли внесены изменения.
А в нашем случае мало того что никаких изменений не сделано, но и редактор даже не открывался (и переключения в него не было).
User avatar
zg
zero-gravity
Posts: 6038
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

EF_OPENMODE_USEEXISTING

Post by zg »

4308.
Post Reply

Return to “Глюки и баги”