]> gitweb.factorcode.org Git - factor.git/commitdiff
vocabs: use valid-vocab-name? to filter disk vocabs
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 9 Jan 2024 17:17:18 +0000 (09:17 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 9 Jan 2024 17:17:18 +0000 (09:17 -0800)
basis/vocabs/hierarchy/hierarchy.factor
core/vocabs/vocabs.factor

index 0d50928854cec5545e5ee967eaf0535794f5e59e..9e25a41828af2eb9d09b869f9c54274159c936bf 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors arrays assocs combinators.short-circuit fry
 io.directories io.files io.files.info io.pathnames kernel make
 memoize namespaces sequences sets sorting splitting vocabs
-vocabs.loader vocabs.metadata ;
+vocabs.private vocabs.loader vocabs.metadata ;
 IN: vocabs.hierarchy
 
 TUPLE: vocab-prefix name ;
@@ -15,7 +15,11 @@ M: vocab-prefix vocab-name name>> ;
 <PRIVATE
 
 : visible-dir? ( entry -- ? )
-    { [ directory? ] [ name>> "." head? not ] } 1&& ;
+    {
+        [ directory? ]
+        [ name>> "." head? not ]
+        [ name>> valid-vocab-name? ]
+    } 1&& ;
 
 : visible-dirs ( seq -- seq' )
     [ visible-dir? ] filter [ name>> ] sort-by ;
index 4c53c199b47def890b1255d152a95692115e426c..8e78f7c6788ef8ae3e95ae7728d22dfbf5b566f9 100644 (file)
@@ -19,11 +19,17 @@ SYMBOLS: +parsing+ +done+ ;
         swap >>name
         H{ } clone >>words ;
 
+<PRIVATE
+
+: valid-vocab-name? ( name -- ? )
+    dup string? [ [ ":/\\ \"" member? ] none? ] [ f ] if ;
+
+PRIVATE>
+
 ERROR: bad-vocab-name name ;
 
 : check-vocab-name ( name -- name )
-    dup string? [ bad-vocab-name ] unless
-    dup [ ":/\\ \"" member? ] any? [ bad-vocab-name ] when ;
+    dup valid-vocab-name? [ bad-vocab-name ] unless ;
 
 TUPLE: vocab-link name ;