From 6e614feab3876c9cd2bbbf739a3cbc2de2d87ac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Wed, 15 Mar 2023 15:01:22 +0100 Subject: [PATCH] Filter only 4-digit files or symlinks. --- members-base.scm | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) 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)