diff --git a/members-base.scm b/members-base.scm index c0788ae..8e04913 100644 --- a/members-base.scm +++ b/members-base.scm @@ -119,15 +119,30 @@ ;; Returns dictionary containing only records with either 4-digit ;; name or one of its aliases being 4-digit. (define (files-dictionary-filter-4digit-symbols d) - d) + (let loop ((keys (dict-keys d)) + (res (make-dict))) + (if (null? keys) + res + (let* ((key (car keys)) + (val (dict-ref d key))) + (loop (cdr keys) + (if (list-contains-4digit-symbol? (cons key val)) + (dict-set res key val) + res)))))) + + ;; Returns a dictionary containing file-name, symlinks, id and info + ;; keys. The info key contains whatever load-member-file from the + ;; member-file module returns. The id key contains whatever is the + ;; first 4-digit symbol in (cons fname aliases) list. + (define (members-base-load-member mdir fname aliases) + #f) (define (load-members dn) ;; get the directory contents - (let ((fss (files+symlinks->files-dictionary - (get-files+symlinks dn)))) - (print (map length fss))) - ;; filter all ids - ;; resolve links (it might be unknown!) + (let ((fss (files-dictionary-filter-4digit-symbols + (files+symlinks->files-dictionary + (get-files+symlinks dn))))) + (void)) ;; load member files 1)