Discussion:
Вызов внешних редакторов
(слишком старое сообщение для ответа)
Sergey ``Mithgol'' Sokoloff
2017-01-09 21:26:52 UTC
Permalink
Страшно досадую о том, что в пособии по GoldED (в том пособии, которое
состоит из файлов GOLDREF.TXT 396007 байтов и GOLDUSR.TXT 159192 байта)
мне не удалось обнаружить достаточных сведений о том, как GoldED вызывает
внешние редакторы и какие при этом можно передавать параметры.

Прошу рассказать мне об этом.

Самостоятельно я пока что разыскал дистрибутив Fid0Ed версии 1.60 (1998 года),
который в файле README сетует о том, что GoldED во внешние редакторы не хочет
передавать вообще ничего, кроме @file (имени файла, GOLDED.MSG по умолчанию,
в котором сообщение) и @line (то есть номера строки, до которого прокрутило),
после чего для передачи других данных предлагает извращаться с шаблоном.

Это жуть какая-то.

Это действительно так? Внешние редакторы не могут редактировать или даже видеть
заголовок сообщения, а могут только текст его?


... Мы мужики и знаем, на чём сидим. (Виктор Степанович Черномырдин)
Oleg Redut
2017-01-11 15:49:18 UTC
Permalink
Доброе (current) время суток, Sergey!

SMS> 159192 байта) мне не удалось обнаружить достаточных сведений о том,
SMS> как GoldED вызывает внешние редакторы и какие при этом можно
SMS> передавать параметры.

Хм.

SMS> Прошу рассказать мне об этом.

SMS> Самостоятельно я пока что разыскал дистрибутив Fid0Ed версии 1.60

Я долгое время пользовался им, пока эхотаг не научился шифтом со стрелками
выделять несколько строк и Ctrl-Y заработал. Точно не помню.

SMS> Это действительно так? Внешние редакторы не могут
SMS> редактировать или даже видеть заголовок сообщения, а могут
SMS> только текст его?

Видимо, да. Ибо в качестве примера имеется прикручивание редактора от NC.
И вообще, голдед при редактировании, собственно, создаёт временный файл, у меня
$golded$.$$$ в котором, и находится редактируемый текст. Этот файл и может
передаваться внешнему редактору для правки.
А вот и кусок из типового конфига.

=== Вырезка из филе Windows Clipboard ===
// Разрешить или запретить встроенный редактор.
EditInternal Yes
;EditInternal No

// Определение строки запуска внешнего редактора.
;Editor BRED2R.EXE @file
;If Dos
; Editor C:\NCV\NC.COM
;ElseIf OS/2
; Editor C:\NCV\NC.COM @file -***@line
;EndIf

// Как запускать редактор через командный файл.
;Editor C:\command.com /C C:\Bat\myeditor.bat
;Editor C:\4Dos\4dos.com /C C:\Bat\q.btm @file -***@line

// Файл с сообщением для внешнего редактора, он же файл для сохранения
// резервной копии текущего сообщения.
EditorFile $golded$.$$$

// Включение функции жёсткого переноса для использования во внешнем
// редакторе.
EditHardLines No

// Строка для жёсткого переноса для внешнего редактора, если используется.
EditHardLine <<

// Включите эту опцию для автоматического создания письма-аттача,
// при вводе в поле Subj: (Тема:) названия файла с именем диска, например C:
EditAutoAttach Yes

// Атрибуты сообщения, которые будут автоматически присвоены письму-аттачу.
// (Kfs - Удалить вложенные файлы после того, как они будут посланы)
// (K/S - Удалить само это письмо автоматически после отпpавки)
;AttribsAttach Kfs K/S
;AttribsAttach K/S

// Интервал в секундах, через который будет сохранятся резервная копия
// сообщения. Для отключения выставьте в 0.
EditAutoSave 30

// В каких случаях менять дату создания сообщения при изменении сообщения.
;EditChangeDate Always ; Hа всех сообщениях.
EditChangeDate Yes ; Только если оно написано Вами.
;EditChangeDate No ; Никогда.
=== Кончилась врезка ===

Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595
Alexey Vissarionov
2017-01-13 12:00:10 UTC
Permalink
Доброго времени суток, Sergey!
10 Jan 2017 00:26:52, ты -> All:

SMS> не удалось обнаружить достаточных сведений о том, как GoldED вызывает
SMS> внешние редакторы и какие при этом можно передавать параметры.
SMS> Прошу рассказать мне об этом.

Как обычно: vi @file +@line

SMS> GoldED во внешние редакторы не хочет передавать вообще ничего, кроме
SMS> @file (имени файла, GOLDED.MSG по умолчанию, в котором сообщение) и
SMS> @line (то есть номера строки, до которого прокрутило)

А больше ничего и не нужно.

SMS> Это жуть какая-то.

Не нравится? Напиши свой редактор.

SMS> Это действительно так? Внешние редакторы не могут редактировать
SMS> или даже видеть заголовок сообщения, а могут только текст его?

У фидошных сообщений "заголовок" - бинарная структура, и текстовому редактору
там делать нечего.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... GCC/IT d- s: a C++ UL++++$ P++ L++++$ E--- W- N++ w-- PE PGP+++ y? h+ !tv
Sergey ``Mithgol'' Sokoloff
2017-01-16 00:15:24 UTC
Permalink
Так было 15:00 13 Jan 17 написано от Alexey Vissarionov к Sergey ``Mithgol'' Sokoloff:

SMS>> не удалось обнаружить достаточных сведений о том, как GoldED вызывает
SMS>> внешние редакторы и какие при этом можно передавать параметры.
SMS>> Прошу рассказать мне об этом.

AV> Как обычно: vi @file +@line

SMS>> GoldED во внешние редакторы не хочет передавать вообще ничего, кроме
SMS>> @file (имени файла, GOLDED.MSG по умолчанию, в котором сообщение) и
SMS>> @line (то есть номера строки, до которого прокрутило)

AV> А больше ничего и не нужно.

Вообще-то нужно. Как внешний редактор передаёт в Голдед, что произошёл
отказ пользователя от редактирования? Голдед просто проверяет, не изменилась ли
дата (и время) файла ── так, что ли?

SMS>> Это жуть какая-то.

AV> Не нравится? Напиши свой редактор.

В общем-то к этому-то и стремлюсь, но разумный первый этап ── это сочинение
не самостоятельного редактора (уровня GoldED), а внешнего редактора фидопочты,
GUI имеющего. Вышеизложенные вопросы (включая и сегодняшний) возникают
при вступлении на один этот уж этап.


... Черномырдину пришить ничего невозможно. (Виктор Степанович Черномырдин)
Alexey Vissarionov
2017-01-16 22:36:36 UTC
Permalink
Доброго времени суток, Sergey!
16 Jan 2017 03:15:24, ты -> мне:

SMS>>> не удалось обнаружить достаточных сведений о том, как GoldED
SMS>>> вызывает внешние редакторы и какие при этом можно передавать
SMS>>> параметры. Прошу рассказать мне об этом.
AV>> Как обычно: vi @file +@line
SMS>>> GoldED во внешние редакторы не хочет передавать вообще ничего,
SMS>>> кроме @file (имени файла, GOLDED.MSG по умолчанию, в котором
SMS>>> сообщение) и @line (то есть номера строки, до которого прокрутило)
AV>> А больше ничего и не нужно.
SMS> Вообще-то нужно.

Что и зачем?

SMS> Как внешний редактор передаёт в Голдед, что произошёл отказ
SMS> пользователя от редактирования? Голдед просто проверяет, не
SMS> изменилась ли дата (и время) файла -- так, что ли?

man 2 stat

SMS>>> Это жуть какая-то.
AV>> Не нравится? Напиши свой редактор.
SMS> В общем-то к этому-то и стремлюсь, но разумный первый этап --
SMS> это сочинение не самостоятельного редактора (уровня GoldED), а
SMS> внешнего редактора фидопочты, GUI имеющего. Вышеизложенные
SMS> вопросы (включая и сегодняшний) возникают при вступлении на
SMS> один этот уж этап.

Лично мне более разумным видится написание читальника - там понадобится и
продумать междумордие (ты ведь наверняка захочешь сделать его гуевым), и
научиться работать с базами сообщений (например, через SMAPI), и, возможно,
попробовать реализовать все те свистелки-дуделки, которые ты обещаешь уже не
первый год... И только потом вернуться к функции-затычке edit_message() и
поменять запуск внешнего редактора на вызов встроенного.

Это так, просто рекомендация с позиции моего опыта разработки...


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Давай покрасим хунвейбина в серый цвет
Sergey ``Mithgol'' Sokoloff
2017-01-17 13:43:10 UTC
Permalink
Так было 01:36 17 Jan 17 написано от Alexey Vissarionov к Sergey ``Mithgol'' Sokoloff:

AV>>> А больше ничего и не нужно.

SMS>> Вообще-то нужно.

AV> Что и зачем?

То, что я спросил чуть ниже:

SMS>> Как внешний редактор передаёт в Голдед, что произошёл отказ
SMS>> пользователя от редактирования? Голдед просто проверяет, не
SMS>> изменилась ли дата (и время) файла -- так, что ли?

AV> man 2 stat

Спасибо, я прочитал пособие по stat. И чего? Ты таким замысловатым способом
хотел до меня донести информацию о том, как Голдед действует? Или чего?

AV>>> Не нравится? Напиши свой редактор.

SMS>> В общем-то к этому-то и стремлюсь, но разумный первый этап --
SMS>> это сочинение не самостоятельного редактора (уровня GoldED), а
SMS>> внешнего редактора фидопочты, GUI имеющего. Вышеизложенные
SMS>> вопросы (включая и сегодняшний) возникают при вступлении на
SMS>> один этот уж этап.

AV> Лично мне более разумным видится написание читальника - там понадобится и
AV> продумать междумордие (ты ведь наверняка захочешь сделать его гуевым), и
AV> научиться работать с базами сообщений (например, через SMAPI), и,
AV> возможно, попробовать реализовать все те свистелки-дуделки, которые ты
AV> обещаешь уже не первый год...

Спасибо, читальник есть (и довольно давно). Там ещё есть к чему стремиться,
но междумордие гуёвое есть, чтение базы сообщений есть, свистелки посвистывают,
дуделки дудят, обещания выполнены (аватары, гиперссылки, иллюстрации, эмоджи,
Unicode и проч.). Я надеюсь, что это не новость, потому что об этом мой бот
упоминает раз в месяц в Ru.Fidonet.Today и в Ru.FTN.Develop.

AV> И только потом вернуться к функции-затычке edit_message() и поменять
AV> запуск внешнего редактора на вызов встроенного.

AV> Это так, просто рекомендация с позиции моего опыта разработки...

Рекомендация хорошая, но создание встроенного редактора состоит из двух частей.

Во-первых, надо продумать интерфейсную часть (ввод текста и прочих ништяков).

Во-вторых, надо продумать обработку получившегося сообщения (сохранение
в базу фидопочты).

Я решил начать с первой части, для чего сперва сочиняю такой редактор, который
работает как внешний для Голдеда, а сохранение возлагает (пока) на Голдед.

Если бы я решил начать со второй части, то уж конечно сперва сочинил бы код,
пишущий в базу фидопочты новые (или отредактированные) сообщения, а создание их
возложил бы (опять же пока) на внешний редактор.

Однако у меня порядок противоположный, для меня эта рекомендация не пригодится.


... Яйцо выросло на 58%. (Николай Меркушин, глава Республики Мордовия)
Sergey ``Mithgol'' Sokoloff
2017-02-09 19:19:08 UTC
Permalink
Так было 01:36 17 Jan 17 написано от Alexey Vissarionov к Sergey ``Mithgol'' Sokoloff:

SMS>>>> GoldED во внешние редакторы не хочет передавать вообще ничего,
SMS>>>> кроме @file (имени файла, GOLDED.MSG по умолчанию, в котором
SMS>>>> сообщение) и @line (то есть номера строки, до которого прокрутило)

AV>>> А больше ничего и не нужно.

SMS>> Вообще-то нужно.

AV> Что и зачем?

А, вот ещё, например: нужно передать кодировку, в которой сообщение сохранено.

(Откуда внешнему редактору знать, CP866 перед ним или нечто другое?)


... Hалицо нарушение зоны безопасности Оракула Санкт-Петербурга...
Alexey Vissarionov
2017-02-12 04:22:44 UTC
Permalink
Доброго времени суток, Sergey!
09 Feb 2017 22:19:08, ты -> мне:

SMS>>>>> GoldED во внешние редакторы не хочет передавать вообще ничего,
SMS>>>>> кроме @file (имени файла, GOLDED.MSG по умолчанию, в котором
SMS>>>>> сообщение) и @line (то есть номера строки, до которого прокрутило)
AV>>>> А больше ничего и не нужно.
SMS>>> Вообще-то нужно.
AV>> Что и зачем?
SMS> А, вот ещё, например: нужно передать кодировку, в которой сообщение
SMS> сохранено.

`man 7 locale`

SMS> (Откуда внешнему редактору знать, CP866 перед ним или нечто другое?)

`man 3 getenv`


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Опыт и алкоголизм всегда победят молодость и энтузиазм
Sergey ``Mithgol'' Sokoloff
2017-02-12 18:11:10 UTC
Permalink
Так было 07:22 12 Feb 17 написано от Alexey Vissarionov к Sergey ``Mithgol'' Sokoloff:

AV> `man 7 locale`

"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

AV> `man 3 getenv`

"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


Более кросс-платформенные ответы на поставленный вопрос ── есть?


... Такому нужно пpямо сказать: твоя догма ни на что не годится. (Мао Цзэ-дун)
Alexey Vissarionov
2017-02-14 06:21:00 UTC
Permalink
Доброго времени суток, Sergey!
12 Feb 2017 21:11:10, ты -> мне:

AV>> `man 7 locale`
SMS> "man" не является внутренней или внешней
SMS> командой, исполняемой программой или пакетным файлом.
AV>> `man 3 getenv`
SMS> "man" не является внутренней или внешней
SMS> командой, исполняемой программой или пакетным файлом.
SMS> Более кросс-платформенные ответы на поставленный вопрос -- есть?

Разумеется, есть: воспользуйся другими источниками для поиска информации по
указанным ключевым словам.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Сервер под Windows - как Запорожец представительского класса
Sergey ``Mithgol'' Sokoloff
2017-02-14 19:28:58 UTC
Permalink
Так было 09:21 14 Feb 17 написано от Alexey Vissarionov к Sergey ``Mithgol'' Sokoloff:

AV>>> `man 7 locale`
SMS>> "man" не является внутренней или внешней
SMS>> командой, исполняемой программой или пакетным файлом.
AV>>> `man 3 getenv`
SMS>> "man" не является внутренней или внешней
SMS>> командой, исполняемой программой или пакетным файлом.

SMS>> Более кросс-платформенные ответы на поставленный вопрос -- есть?

AV> Разумеется, есть: воспользуйся другими источниками для поиска информации
AV> по указанным ключевым словам.

Уточняю: когда я говорил 'кросс-платформенные', то имел в виду 'описывающие
в том числе и поведение Голдеда при вызове внешнего редактора в MS Windows'.


... После нас хоть потоп. (маркиза де Помпадур)
Loading...