2dup [ class-of ] same? [
[ tuple-slots ] bi@ [ (match) ] 2all?
] [ 2drop f ] if ] }
- { [ t ] [ 2drop f ] }
+ [ 2drop f ]
} cond ;
: match ( value1 value2 -- bindings )
(match-first) drop ;
: (match-all) ( seq pattern-seq -- )
- [ nip ] [ (match-first) swap ] 2bi
+ [ (match-first) ] keep
[ , [ swap (match-all) ] [ drop ] if* ] [ 2drop ] if* ;
: match-all ( seq pattern-seq -- bindings-seq )
{ [ over number? ] [ stream-write1 ] }
{ [ over string? ] [ stream-write ] }
{ [ over sequence? ] [ [ stream-tree-write ] curry each ] }
- { [ t ] [ stream-write ] }
+ [ stream-write ]
} cond ;
: tree-write ( object -- )
{ [ dup S_IFLNK = ] [ drop "@" ] }
{ [ dup S_IFWHT = ] [ drop "%" ] }
{ [ dup S_IFSOCK = ] [ drop "=" ] }
- { [ t ] [ drop "" ] }
+ [ drop "" ]
} cond ;
M: unix (directory.) ( path -- lines )
{ [ over SC_RESTORE = ] [ t set-window-active ] }
{ [ over SC_MAXIMIZE = ] [ t set-window-active ] }
{ [ dup alpha? ] [ 4drop 0 ] }
- { [ t ] [ DefWindowProc ] }
+ [ DefWindowProc ]
} cond ;
: cleanup-window ( handle -- )
<< "freetype" {
{ [ os macosx? ] [ "/usr/X11R6/lib/libfreetype.6.dylib" cdecl add-library ] }
{ [ os windows? ] [ "freetype6.dll" cdecl add-library ] }
- { [ t ] [ drop ] }
+ [ drop ]
} cond >>
LIBRARY: freetype