LINUX.ORG.RU

Добавь к функции аргумент &key (verbose nil) что ли. И когда надо полчать подробный вывод, тогда :verbose t передавай.

Artificial_Thought ★★★★
()
Ответ на: комментарий от tensai_cirno

Там не только мой вывод. Есть и вывод штатных функций. Например, если файл не изменен, то при сохранении пишется "(No changes need to be saved)" в эхо-область и в буффер *Messages*.

arte-at-marte
() автор топика
Ответ на: комментарий от Array

Насколько я знаю, здесь нужно использовать defadvice around для функции message.

мм... аспектно-ориентированное программирование... а я даже не знал, что такое есть в имакс лиспе... попробуем...

arte-at-marte
() автор топика
Ответ на: комментарий от Bad_ptr

есть ещё переменная message-log-max, может её можно поставить в ноль, не знаю, не пробовал.

Ага. Но только не в 0, а в nil.

(let ((message-log-max nil))
  (код с выключенным логом))

Или глобально вырубить.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

странно, но

(let ((message-log-max nil))
  (message "hello"))
все равно выводит в буффер *Message*. Но
(setq message-log-max nil)
(message "hello")
работает как надо...

Еще заметил, что nunion почему то не модифицирует свой первый аргумент, а работает точно как union... Это все ведь на совести пакета cl?

arte-at-marte
() автор топика
Ответ на: комментарий от arte-at-marte

странно, но все равно выводит в буффер *Message*.

Если будешь делать из *scratch* при помощи C-x C-e, то будет выводить, потому что в лог засовывает уже этот eval после выхода из let, потому что этот исполняемый кусок возвращает как результат «hello». А ты попробуй в цикле сделать этот кусок.

(defun test ()
  (let ((message-log-max nil))
    (dotimes (i 10)
      (message "hello"))))

(test) ;; C-x C-e

или так:

(defun test ()
  (dotimes (i 10)
    (message "hello"))))

(let ((message-log-max nil)) ;; C-x C-e
  (test))
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.