Kenneth Stuart <kstu...@hotmail.co.uk> writes: > Macro `org-encode-time` (lisp/org-macs.el +1395) does not get defined > for emacs >= 27.1 as the top level if statement is missing its ELSE clause.
Are you sure? > #+begin_src elisp > (if (version< emacs-version "27.1") > (defmacro org-encode-time (&rest time) > (if (cdr time) > `(encode-time ,@time) > `(apply #'encode-time ,@time))) > (if (ignore-errors (with-no-warnings (encode-time '(0 0 0 1 1 1971)))) > (defmacro org-encode-time (&rest time) > (pcase (length time) ; Emacs-29 since d75e2c12eb > (1 `(encode-time ,@time)) > ((or 6 9) `(encode-time (list ,@time))) > (_ (error "`org-encode-time' may be called with 1, 6, or 9 > arguments but %d given" > (length time))))) > (defmacro org-encode-time (&rest time) > (pcase (length time) > (1 `(encode-time ,@time)) > (6 `(encode-time (list ,@time nil -1 nil))) > (9 `(encode-time (list ,@time))) > (_ (error "`org-encode-time' may be called with 1, 6, or 9 arguments > but %d given" > (length time)))))) //MISSING ELSE//) > #+end_src This is equivalent to (if condition (defmacro ...) ;; else (if another-condition (defmacro ...) ;; else (defmacro))) Best, Ihor