Default #f for all mandatory keys.
This commit is contained in:
parent
faa3a930be
commit
34ce407268
2 changed files with 31 additions and 6 deletions
|
@ -99,14 +99,22 @@
|
||||||
(msg (cdr fr)))
|
(msg (cdr fr)))
|
||||||
(cons amt msg)))
|
(cons amt msg)))
|
||||||
value)))
|
value)))
|
||||||
|
((nick)
|
||||||
|
(let ((mr0 (member-record-sub-set mr output key (car value))))
|
||||||
|
(if (irregex-search (irregex "[ \\t]" 'u) (car value))
|
||||||
|
(member-record-add-highlight
|
||||||
|
mr0 (cdr value) "Whitespace not allowed in nick" 3 'error)
|
||||||
|
mr0)))
|
||||||
(else
|
(else
|
||||||
(member-record-sub-set mr output key (car value))))))))
|
(member-record-sub-set mr output key (car value))))))))
|
||||||
|
|
||||||
;; Final checks - add defaults
|
;; Pass 4: Final checks - add defaults
|
||||||
(define (member-schema-finalize mr)
|
(define (member-schema-finalize mr)
|
||||||
(if (member-record-sub-has-key? mr 'info 'joined)
|
(apply
|
||||||
mr
|
member-record-sub-ensure
|
||||||
(member-record-sub-set mr 'info 'joined (*member-default-joined*))))
|
mr 'info
|
||||||
|
'joined (*member-default-joined*)
|
||||||
|
(join (map (lambda (mk) (list mk #f)) mandatory-keys))))
|
||||||
|
|
||||||
;; Pass 0: Removes any comments and removes any leading and trailing
|
;; Pass 0: Removes any comments and removes any leading and trailing
|
||||||
;; whitespace.
|
;; whitespace.
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
member-record-sub-set
|
member-record-sub-set
|
||||||
member-record-sub-prepend
|
member-record-sub-prepend
|
||||||
member-record-sub-has-key?
|
member-record-sub-has-key?
|
||||||
|
member-record-sub-ensure
|
||||||
|
|
||||||
member-record-info
|
member-record-info
|
||||||
|
|
||||||
|
@ -162,6 +163,22 @@
|
||||||
(define (member-record-sub-has-key? mr sec key)
|
(define (member-record-sub-has-key? mr sec key)
|
||||||
(dict-has-key? (dict-ref mr sec) key))
|
(dict-has-key? (dict-ref mr sec) key))
|
||||||
|
|
||||||
|
;; Returns new member record with section updated by defaults, the
|
||||||
|
;; section must already exist.
|
||||||
|
(define (member-record-sub-ensure mr sec . kvs)
|
||||||
|
(let loop ((kvs kvs)
|
||||||
|
(sd (dict-ref mr sec)))
|
||||||
|
(if (null? kvs)
|
||||||
|
(dict-set mr sec sd)
|
||||||
|
(if (null? (cdr kvs))
|
||||||
|
(error 'member-record-sub-ensure "Needs pairs of keys and values" kvs)
|
||||||
|
(let ((key (car kvs))
|
||||||
|
(val (cadr kvs)))
|
||||||
|
(loop (cddr kvs)
|
||||||
|
(if (dict-has-key? sd key)
|
||||||
|
sd
|
||||||
|
(dict-set sd key val))))))))
|
||||||
|
|
||||||
;; Returns member info key value
|
;; Returns member info key value
|
||||||
(define (member-record-info mr key . defaults)
|
(define (member-record-info mr key . defaults)
|
||||||
(let ((info (dict-ref mr 'info)))
|
(let ((info (dict-ref mr 'info)))
|
||||||
|
@ -245,9 +262,9 @@
|
||||||
((#\S) (number->string (member-suspended-months mr)))
|
((#\S) (number->string (member-suspended-months mr)))
|
||||||
((#\E)
|
((#\E)
|
||||||
(let ((n (length (dict-ref mr 'highlights '()))))
|
(let ((n (length (dict-ref mr 'highlights '()))))
|
||||||
(if (<= n 2)
|
(if (eq? n 0)
|
||||||
""
|
""
|
||||||
(sprintf "[~A]" (- n 2)))))
|
(sprintf "[~A]" n))))
|
||||||
((#\~) "~"))
|
((#\~) "~"))
|
||||||
resl))
|
resl))
|
||||||
(loop (cdr fmtl)
|
(loop (cdr fmtl)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue