Как убрать упра вляющие escape- последовательно сти в comint буфере?
Mikolaj Golub <[email protected]>
| Newsgroups | gmane.emacs.xemacs.user.russian |
|---|---|
| Organization | Institute of Molecular Physics PAS |
| Message-ID | <[email protected]> |
Здравствуйте,
Прежде всего прошу прощение -- вопрос по GnuEmacs (я не знаю, возможно
в Xemacs все по-другому), но русскоязычной рассылки по GnuEmacs я не
нашел...
Когда я запускаю micq в comint буфере, в выводе проскакивают
последовательности "[J". Вот пример:
--8<--
Русский (ru_RU.KOI8-R) перевод загружен (1067 записей).
[JОткрываю v8 соединение к loginicqcom:5190
Открываю прямое соединение на localhost:0... ok.
[JВведите пароль: tralala
[J09:51:09 Логин не прошел:
Код ошибки: 5
URL: http://wwwaimcom/errors/MISMATCH_PASSWDhtml?ccode=de&lang=de
mICQ>
[JmICQ>
[JmICQ>
--8<--
Хотелось бы их как-то убрать. Как я понял, для этого нужно написать
фильтр и добавить его в лист comint-output-filter-functions.
Определяю функцию по аналогии к функции comint-carriage-motion:
--8<--
(defun micq-input-escapeseq-remove (string)
"Remove escape sequences in micq comint output.
This function should be in the list `comint-output-filter-functions'."
(save-match-data
;; We first check to see if STRING contains any magic characters, to
;; avoid overhead in the common case where it does not
(when (string-match "\\[J" string)
(let ((pmark (process-mark (get-buffer-process (current-buffer)))))
(save-excursion
(save-restriction
(widen)
(let ((inhibit-field-text-motion t)
(buffer-read-only nil))
(goto-char comint-last-output-start)
(while (search-forward "\\[J" pmark t)
(delete-char -3)))))))))
--8<--
И добавляю ее к comint-output-filter-functions:
--8<--
comint-output-filter-functions's value is
(comint-carriage-motion comint-watch-for-password-prompt micq-input-escapeseq-remove)
Local in buffer *micq*; global value is
(comint-carriage-motion comint-watch-for-password-prompt)
--8<--
Но, к сожалению, это ничего не дает. Пробовал даже заменить в моем
фильтре "\\[J" на "." (типа, чтоб все стирало), но это тоже никак не
повлияло...
Может, кто подскажет, что я делаю не так?
Спасибо.
--
Mikolaj Golub