From 2947d841016cc225f9ca92f8d126a2fd3deaaa3e Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 15 Aug 2015 00:05:22 +0200 Subject: main: Make 'catch-mcron-error' macro hygienic. * scm/mcron/main.scm (catch-mcron-error): Use 'define-syntax-rule' instead of 'defmacro'. --- scm/mcron/main.scm | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/scm/mcron/main.scm b/scm/mcron/main.scm index 227bb8f..99531a8 100644 --- a/scm/mcron/main.scm +++ b/scm/mcron/main.scm @@ -64,19 +64,13 @@ When COMMAND is not specified this uses the first element of (command-line)." (when (and exit-code (not (eq? exit-code 0))) (primitive-exit exit-code))) - - -;; Code contributed by Sergey Poznyakoff. Execute body. If an 'mcron-error -;; exception occurs, print its diagnostics and exit with its error code. - -(defmacro catch-mcron-error (. body) - `(catch 'mcron-error - (lambda () - ,@body) - (lambda (key exit-code . msg) - (apply mcron-error exit-code msg)))) - - +(define-syntax-rule (catch-mcron-error exp ...) + "Evaluate EXP .... if an 'mcron-error exception occurs, print its diagnostics +and exit with its error code." + (catch 'mcron-error + (lambda () exp ...) + (lambda (key exit-code . msg) + (apply mcron-error exit-code msg)))) ;; We will be doing a lot of testing of the command name, so it makes sense to ;; perform the string comparisons once and for all here. -- cgit v1.2.3