Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2009-09-02 06:22:44 -05:00
commit e3b967fe67
7 changed files with 36 additions and 18 deletions

View File

@ -51,5 +51,5 @@ M: freebsd statvfs>file-system-info ( file-system-info statvfs -- file-system-in
M: freebsd file-systems ( -- array )
f 0 0 getfsstat dup io-error
\ statfs <struct-array>
[ dup length 0 getfsstat io-error ]
[ [ f_mntonname>> utf8 alien>string file-system-info ] map ] bi ;
[ dup byte-length 0 getfsstat io-error ]
[ [ f_mntonname>> utf8 alien>string file-system-info ] { } map-as ] bi ;

View File

@ -48,5 +48,5 @@ M: netbsd statvfs>file-system-info ( file-system-info statvfs -- file-system-inf
M: netbsd file-systems ( -- array )
f 0 0 getvfsstat dup io-error
\ statvfs <struct-array>
[ dup length 0 getvfsstat io-error ]
[ [ f_mntonname>> utf8 alien>string file-system-info ] map ] bi ;
[ dup byte-length 0 getvfsstat io-error ]
[ [ f_mntonname>> utf8 alien>string file-system-info ] { } map-as ] bi ;

View File

@ -8,11 +8,11 @@ arrays io.files.info.unix classes.struct struct-arrays
io.encodings.utf8 ;
IN: io.files.unix.openbsd
TUPLE: freebsd-file-system-info < unix-file-system-info
TUPLE: openbsd-file-system-info < unix-file-system-info
io-size sync-writes sync-reads async-writes async-reads
owner ;
M: openbsd new-file-system-info freebsd-file-system-info new ;
M: openbsd new-file-system-info openbsd-file-system-info new ;
M: openbsd file-system-statfs
\ statfs <struct> [ statfs io-error ] keep ;
@ -49,5 +49,5 @@ M: openbsd statvfs>file-system-info ( file-system-info statvfs -- file-system-in
M: openbsd file-systems ( -- seq )
f 0 0 getfsstat dup io-error
\ statfs <struct-array>
[ dup length 0 getfsstat io-error ]
[ [ f_mntonname>> utf8 alien>string file-system-info ] map ] bi ;
[ dup byte-length 0 getfsstat io-error ]
[ [ f_mntonname>> utf8 alien>string file-system-info ] { } map-as ] bi ;

View File

@ -1,4 +1,4 @@
USING: kernel stack-checker.transforms ;
USING: kernel stack-checker.transforms struct-arrays.private ;
IN: struct-arrays
: struct-element-constructor ( c-type -- word )

View File

@ -4,7 +4,7 @@ namespaces windows.ole32 libc vocabs assocs accessors arrays
sequences quotations combinators math words compiler.units
destructors fry math.parser generalizations sets
specialized-arrays.alien specialized-arrays.direct.alien
windows.kernel32 ;
windows.kernel32 classes.struct ;
IN: windows.com.wrapper
TUPLE: com-wrapper < disposable callbacks vtbls ;

View File

@ -25,13 +25,20 @@ unit-test
[ "e" string>number ]
unit-test
[ 100000 ]
[ "100,000" string>number ]
unit-test
[ 100000 ] [ "100,000" string>number ] unit-test
[ 100000.0 ]
[ "100,000.0" string>number ]
unit-test
[ 100000.0 ] [ "100,000.0" string>number ] unit-test
[ f ] [ "," string>number ] unit-test
[ f ] [ "-," string>number ] unit-test
[ f ] [ "1," string>number ] unit-test
[ f ] [ "-1," string>number ] unit-test
[ f ] [ ",2" string>number ] unit-test
[ f ] [ "-,2" string>number ] unit-test
[ 2.0 ] [ "2." string>number ] unit-test
[ 255 ] [ "ff" hex> ] unit-test
[ "100.0" ]
[ "1.0e2" string>number number>string ]

View File

@ -86,16 +86,27 @@ SYMBOL: negative?
[ CHAR: , eq? not ] filter
>byte-array 0 suffix (string>float) ;
: number-char? ( char -- ? )
"0123456789ABCDEFabcdef." member? ;
: numeric-looking? ( str -- ? )
"-" ?head drop
dup empty? [ drop f ] [
dup first number-char? [
last number-char?
] [ drop f ] if
] if ;
PRIVATE>
: base> ( str radix -- n/f )
over empty? [ 2drop f ] [
over numeric-looking? [
over [ "/." member? ] find nip {
{ CHAR: / [ string>ratio ] }
{ CHAR: . [ drop string>float ] }
[ drop string>integer ]
} case
] if ;
] [ 2drop f ] if ;
: string>number ( str -- n/f ) 10 base> ;
: bin> ( str -- n/f ) 2 base> ;