Используйте macroexpand-1 на Emacs-22 - PullRequest
0 голосов
/ 14 ноября 2018

Я разрабатываю пакет, который работает с Emacs-22, и называется leaf, и я хотел бы использовать macroexpand-1 при его тестировании

Но macroexpand-1 не было определено в Emacs-22 и Emacs-26, код не может быть определен, поскольку он зависит от функции autoload-do-load на основе C, даже если я попытаюсь определить ее.

Нельзя ли использовать macroexpand-1 в Emacs-22? Подсказка для реализации macroexpand-1 Элиспиан тоже хорошо.

(Emacs-22 в комплекте с macOS в /usr/bin/emacs)

1 Ответ

0 голосов
/ 24 декабря 2018

см. PR.https://github.com/conao3/leaf.el/pull/36/commits/47cf0b7c8d6b83b21800d01c594cef8e8d531e57

(when (not (fboundp 'autoload-do-load))
  (defun autoload-do-load (fundef &optional funname macro-only)
    (if (or (not (consp fundef)) (not (eql 'autoload (car fundef))))
        fundef
      (let ((kind (nth 4 fundef)))
        (if (and (eql macro-only 'macro)
                 (not (or (eql kind t)
                          (eql kind 'macro))))
            fundef)
        (if purify-flag
            (error "Attempt to autoload %s while preparing to dump" (symbol-name funnname)))
        (unwind-protect
            (let ((ignore-errors (if (or (eql kind t) (eql kind 'macro)) nil macro_only)))
              (load (cadr fundef) ignore-errors t nil t))
          ;; FIXME: revert partially performed defuns
          ())
        (if (or (not funname) ignore-errors)
            nil
          (let ((fun (indirect-function funname, nil)))
            (if (equal fun fundef)
                (error "Autoloading file %s failed to define function %s"
                       (caar load-history)
                       (symbol-name funname))
              fun)))))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...