Привет, Денис!
Первый вопрос: ты читал Emacs Lisp Intro?
Если нет, то перед тем, как задавать подобные вопросы, прочти обязательно.
Его вроде как теперь поставляют в новых версиях XEmacs'a. Можно взять с сайта
http://ftp.xemacs.org/pub/xemacs/docs/a4/emacs-lisp-intro-a4.pdf.gz
Тем не менее, несколько комментариев.
Если ты определяешь свою функцию, то лучше именовать её со своим префиксом,
отличным от префиксов, которые встречаются в пакетах. Я, как правило,
прибавляю my- в начало каждой вспомогательной функции, которую пишу для своих
нужд.
Почему ты пишешь (let ((a (eval '(foo bar)))) ... ) ?
Достаточно (let ((a (foo bar))) ... )
Похоже, есть огрех в логике в коде (if to-name ... ). Мне кажется, что
(insert " to " to-name) необходимо внести в (if (string-match ...
вместо (substring ... ) можно было воспользоваться (match-string 0 from)
DD> И еще вопрос как проверить что значения 2х переменных равны, в данном
DD> случае я пробовал использовать функцию eq и equal, но почему-то она
DD> сообщается об ошибке Wrong type argument: char-or-string-p, nil
А ты можешь привести пример кода, в котором возникает такая ошибка?
Коля.