diff --git a/member-record.scm b/member-record.scm index 3fe72e2..3ea0022 100644 --- a/member-record.scm +++ b/member-record.scm @@ -37,6 +37,7 @@ member-nick member-id member-existing? + member-format member-record-tests! ) @@ -136,6 +137,23 @@ (and joined (monthlist fmt)) + (resl '())) + (if (null? fmtl) + (string-intersperse (reverse resl) "") + (let ((ch (car fmtl))) + (if (eq? ch #\~) + (loop (cddr fmtl) + (cons (case (cadr fmtl) + ((#\N) (mr-ref mr 'nick)) + ((#\I) (number->string (mr-ref mr 'id))) + ((#\~) "~")) + resl)) + (loop (cdr fmtl) + (cons (make-string 1 (car fmtl)) resl))))))) + ;; Performs module self-tests. (define (member-record-tests!) (run-tests diff --git a/members-base.scm b/members-base.scm index f171783..dad9f35 100644 --- a/members-base.scm +++ b/members-base.scm @@ -259,9 +259,7 @@ (car sl)))) (string-intersperse (map (lambda (mr) - (sprintf "~A (~A)" - (member-id mr) - (member-nick mr))) + (member-format "~N (~I)" mr)) mrs)))) ;; Returns dictionary with statistics about the members base.