diff --git a/src/mailman.scm b/src/mailman.scm index a826bb2..9c5c5cb 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -27,18 +27,32 @@ (module mailman - ( - list-mailman-lists - ) + () (import scheme (chicken base) + (chicken module) mailman2) (define *mailman-version* (make-parameter 2)) - (define (list-mailman-lists) - (case (*mailman-version*) - ((2) (list-mailman2-lists)))) + (define-syntax define-mailman-proc + (syntax-rules () + ((_ name proc2) + (begin + (export name) + (define (name . args) + (case (*mailman-version*) + ((2) (apply proc2 args)))))) + ((_ name proc2 proc3) + (begin + (export name) + (define (name . args) + (case (*mailman-version*) + ((2) (apply proc2 args)) + ((3) (apply proc3 args)))))))) + + (define-mailman-proc list-mailman-lists list-mailman2-lists) + (define-mailman-proc list-mailman-list-members list-mailman2-list-members) ) diff --git a/src/mailman2.scm b/src/mailman2.scm index 5857695..a184111 100644 --- a/src/mailman2.scm +++ b/src/mailman2.scm @@ -31,7 +31,7 @@ *mailman2-bin* list-mailman2-lists - list-mailman-list-members + list-mailman2-list-members load-mailman-list load-mailman-lists @@ -91,7 +91,7 @@ (get-mailman-output-lines "list_lists" "-b")) ;; Returns the list of members of given list - (define (list-mailman-list-members lst) + (define (list-mailman2-list-members lst) (sort (get-mailman-output-lines "list_members" lst) string-ci