diff --git a/extra/terminfo/terminfo.factor b/extra/terminfo/terminfo.factor index 4e19c3607c..6ce57f324c 100644 --- a/extra/terminfo/terminfo.factor +++ b/extra/terminfo/terminfo.factor @@ -1,9 +1,9 @@ ! Copyright (C) 2013 John Benediktsson. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors combinators formatting fry grouping io -io.binary io.directories io.encodings.binary io.files kernel -math math.parser memoize pack sequences +USING: accessors assocs combinators formatting fry grouping +hashtables io io.binary io.directories io.encodings.binary +io.files kernel math math.parser memoize pack sequences sequences.generalizations splitting strings ; IN: terminfo @@ -73,5 +73,163 @@ MEMO: terminfo-names ( -- names ) [ directory-files ] map concat ] with-directory-files ; -: max-colors ( name -- n ) - terminfo-path file>terminfo numbers>> 13 swap nth ; + append zip ; + +PRIVATE> + +: term-capabilities ( name -- assoc ) + terminfo-path file>terminfo { + [ booleans>> boolean-names zip-names ] + [ numbers>> number-names zip-names ] + [ strings>> string-names zip-names ] + } cleave 3append >hashtable ;