Пользовательское меню и символ @

Здесь можно сообщить о найденных багах в Far.
Release
Posts: 18
Joined: Tue 21 May, 2013 05:59
Has thanked: 1 time
Been thanked: 1 time

Пользовательское меню и символ @

Post by Release »

Уже довольно большое количество билдов, в том числе в последнем стабильном, лог отрабатывания консольных приложений из пользовательского меню отражается при включенных панелях. Панели уезжают вверх, пока не будет евент их перерисовки, а также история не сохраняется - по CtrlO лога не видно.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

Latest post of the previous page:

tstr
А разве это замечание автоматически попало в svn?
Smitis wrote:
John Doe wrote:Подумайте откуда на экране мусор.
Нормален ли вообще вывод ПОВЕРХ панелей, пусть даже фар в конце и перерисует панели как надо.
Какая разница, что там выводят консольные программы и куда? Почему это должно мешать восстановить полностью панели?
Вывода ПОВЕРХ панелей быть не должно. Объясните зачем он вам.
Если незачем, то примите меры, т.е. или перенаправьте в nul, или уберите @

Да, фар мог бы определять что выполняемая команда - это консольное приложение, и сам глушить его вывод, или хотя бы перерисовывать панели после.
Но как верно сказано, это НЕШТАТНАЯ ситуация, и всякие дополнительные фичи вокруг неё не просто имеют мало смысла, но и могут навредить.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Пользовательское меню.

Post by Smitis »

John Doe wrote:Вывода ПОВЕРХ панелей быть не должно. Объясните зачем он вам.
Как раз мне вывод в данной ситуации и не нужен. Но это может произойти совершенно случайно (например, скрипт не должен ничего выводить, но осталась команда, выводящая отладочную информацию в ситуации, возникающей раз в полгода и т.п.)
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

Вот как раз об этой ситуации я и говорю: если программа нештатно выводит на экран какие-то данные, то затирать их не годится.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: Пользовательское меню.

Post by tstr »

John Doe wrote:tstr
А разве это замечание автоматически попало в svn?
а разве кто-то предложил патч?
John Doe wrote:
Smitis wrote:
John Doe wrote:Подумайте откуда на экране мусор.
Нормален ли вообще вывод ПОВЕРХ панелей, пусть даже фар в конце и перерисует панели как надо.
Какая разница, что там выводят консольные программы и куда? Почему это должно мешать восстановить полностью панели?
Вывода ПОВЕРХ панелей быть не должно. Объясните зачем он вам.
Если незачем, то примите меры, т.е. или перенаправьте в nul, или уберите @

Да, фар мог бы определять что выполняемая команда - это консольное приложение, и сам глушить его вывод, или хотя бы перерисовывать панели после.
Но как верно сказано, это НЕШТАТНАЯ ситуация, и всякие дополнительные фичи вокруг неё не просто имеют мало смысла, но и могут навредить.
В реальном мире немного по-другому. Несмотря на ИИ ФАРа приложения пишут поверх панелей. это факт. пока нет "дополнительных фичей" ищем воркараунд. Ваше настойчивое "или перенаправьте в nul, или уберите @" не помогает (и не должно в общем случае).
John Doe wrote:Вот как раз об этой ситуации я и говорю: если программа нештатно выводит на экран какие-то данные, то затирать их не годится.
это вопрос спорный.
если бы можно было отдельные команды LuaMacro исполнять в общем контексте запуска, то это решило бы задачу и многострочного хранения, и сабжа, напр. так:
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

tstr wrote:В реальном мире немного по-другому. Несмотря на ИИ ФАРа приложения пишут поверх панелей. это факт. пока нет "дополнительных фичей" ищем воркараунд. Ваше настойчивое "или перенаправьте в nul, или уберите @" не помогает (и не должно в общем случае).
Выше я просил привести пример, никто не привёл.
А в общем случае - должно помогать.

А второй вопрос - не спорный. Или я не вижу спорящих.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Пользовательское меню.

Post by Smitis »

John Doe wrote:Выше я просил привести пример, никто не привёл.
Привожу пример
GtrlG
@pause
В ком. строке появляется "Для продолжения нажмите любую клавишу . . ."
Пока всё нормально, что хотели, то и получили. Нажимаем anykey, управление возврашается ФАРу, но в ком. строке продолжает висеть совершенно ненужное и просто мешающее "Для продолжения нажмите любую клавишу . . .". Совершенно фантомное, его даже по AltIns не скопировать.
(Пример минимизирован для демонстрации)
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

Для чего вы использовали здесь @?
Чтобы не гасить панели.
То и получили.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: Пользовательское меню.

Post by tstr »

John Doe wrote:Выше я просил привести пример, никто не привёл.
А в общем случае - должно помогать.
о том и речь что вопрос не в запуске и работе внешних факторов (программ, скриптов), а о восстановлении панелей ФАРом после завершения их вывода/работы. так какие примеры здесь уместны?

вывод команд меню пользователя "@lm:post os.execute("net use");" и "lm:post os.execute("net use");"
как и всё, что отдаёт скрипт или команды через io.write _одинаково_ портят содержание панелей, в отличие от ожидаемого результата (не говорим пока о перерисовке) при "@net use" и "net use".
John Doe wrote:А второй вопрос - не спорный. Или я не вижу спорящих.
Smitis wrote:Какая разница, что там выводят консольные программы и куда? Почему это должно мешать восстановить полностью панели?
мне также мешает мусор скриптов и программ, которые используют для вывода не вполне стандартные потоки в не вполне стандартные консоли. ведь пока из меню пользователя нет возможности перерисовать панели принудительно?
Last edited by tstr on Thu 23 May, 2013 11:16, edited 1 time in total.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Пользовательское меню.

Post by Smitis »

John Doe wrote:Для чего вы использовали здесь @?
Чтобы не гасить панели.
То и получили.
Нет. Одно я получил то, что хотел - негашение панелей. Другое - то, что не хотел - остаток ненужной надписи на экране. И не пытайтесь меня убедить, что это какая-то жутко нужная надпись.
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

tstr wrote:так какие примеры здесь уместны?
Примеры в которых нельзя избавиться от мусора при штатном использовании.
Насчёт lm:post я уже писал выше.
net use - не надо запрещать гашение панелей, или перенаправляйте в nul
tstr wrote:мне также мешает мусор скриптов и программ, которые используют для вывода не вполне стандартные потоки в не вполне стандартные консоли. ведь пока из меню пользователя нет возможности перерисовать панели принудительно?
При нестандартном выводе программы просто не запрещайте гашение панелей, что непонятно? Уже пятый раз пишу одно и то же, и все игнорируют.

Перерисовать сами панели - запросто, но речь обо всём экране.
LuaFAR предоставляет средства для сохранения восстановления, но использовать их в юзерменю я не пробовал.

P.S.
Почему бы вам не почитать мануал?
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

Smitis wrote:Нет. Одно я получил то, что хотел - негашение панелей. Другое - то, что не хотел - остаток ненужной надписи на экране. И не пытайтесь меня убедить, что это какая-то жутко нужная надпись.
Не пытайтесь меня убедить, что вы используете функцию негашения панелей по назначению.

Да, никто этого вам запретить не может, но тогда уж позаботьтесь об обновлении экрана сами.
Советов не даю, ведь скрипт вы не показали.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

John Doe wrote:LuaFAR предоставляет средства для сохранения восстановления, но использовать их в юзерменю я не пробовал.
Попробовал.
Сохранение и восстановление экрана должны происходить в рамках одного запуска lm.post
В противном случае, даже если хэндл передаётся через глобальную переменную, восстановление не срабатывает (хотя и far.RestoreScreen и возвращает true)
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Пользовательское меню.

Post by DrKnS »

Модификатор '@' предназначен для графических приложений, ничего в консоль не выводящих, запускающихся в отдельном окне и не блокирующих фар на время своего исполнения.
Например, @notepad !.!

Ставя его перед консольными приложениями, вы сами ищете приключений.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

Дополню.
Гашение панелей предназначено для того, чтобы видеть вывод консольных программ.
Именно в этом его назначение.

Если программа ничего не выводит, то гасить панели нет необходимости, и @ позволяет этого добиться.

Всё остальное может быть тоже интересно, но уже выходит за рамки задуманного и поддерживаемого.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Пользовательское меню.

Post by Smitis »

DrKnS wrote:Модификатор '@' предназначен для графических приложений, ничего в консоль не выводящих, запускающихся в отдельном окне и не блокирующих фар на время своего исполнения.
Например, @notepad !.!

Ставя его перед консольными приложениями, вы сами ищете приключений.
Надо куда-нибудь в FAQ. Или HELP.
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Пользовательское меню.

Post by John Doe »

Вроде самоочевидно. Поддерживается то, что заявлено.
Что не заявленно - никто и не обещал.

Вообще в хелпе про @ по-моему нет нигде кроме EditorSettings и ViewerSettings.
А после возврата из внешних редакторов/вьюверов экран вроде как перерисовывается.
Post Reply

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