Merge branch 'master' of git://factorcode.org/git/factor
commit
0c090699c2
|
@ -170,8 +170,8 @@ M: character-type (fortran-type>c-type)
|
|||
|
||||
: (parse-fortran-type) ( fortran-type-string -- type )
|
||||
parse-out swap parse-dims swap parse-size swap
|
||||
dup >lower fortran>c-types at*
|
||||
[ nip new-fortran-type ] [ drop misc-type boa ] if ;
|
||||
>lower fortran>c-types ?at
|
||||
[ new-fortran-type ] [ misc-type boa ] if ;
|
||||
|
||||
: parse-fortran-type ( fortran-type-string/f -- type/f )
|
||||
dup [ (parse-fortran-type) ] when ;
|
||||
|
|
|
@ -77,20 +77,20 @@ SYMBOL: objects
|
|||
|
||||
! Constants
|
||||
|
||||
: image-magic HEX: 0f0e0d0c ; inline
|
||||
: image-version 4 ; inline
|
||||
CONSTANT: image-magic HEX: 0f0e0d0c
|
||||
CONSTANT: image-version 4
|
||||
|
||||
: data-base 1024 ; inline
|
||||
CONSTANT: data-base 1024
|
||||
|
||||
: userenv-size 70 ; inline
|
||||
CONSTANT: userenv-size 70
|
||||
|
||||
: header-size 10 ; inline
|
||||
CONSTANT: header-size 10
|
||||
|
||||
: data-heap-size-offset 3 ; inline
|
||||
: t-offset 6 ; inline
|
||||
: 0-offset 7 ; inline
|
||||
: 1-offset 8 ; inline
|
||||
: -1-offset 9 ; inline
|
||||
CONSTANT: data-heap-size-offset 3
|
||||
CONSTANT: t-offset 6
|
||||
CONSTANT: 0-offset 7
|
||||
CONSTANT: 1-offset 8
|
||||
CONSTANT: -1-offset 9
|
||||
|
||||
SYMBOL: sub-primitives
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ PRIVATE>
|
|||
: month-abbreviation ( n -- string )
|
||||
check-month 1- month-abbreviations nth ;
|
||||
|
||||
: day-counts { 0 31 28 31 30 31 30 31 31 30 31 30 31 } ; inline
|
||||
CONSTANT: day-counts { 0 31 28 31 30 31 30 31 31 30 31 30 31 }
|
||||
|
||||
: day-names ( -- array )
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@ IN: checksums.adler-32
|
|||
|
||||
SINGLETON: adler-32
|
||||
|
||||
: adler-32-modulus 65521 ; inline
|
||||
CONSTANT: adler-32-modulus 65521
|
||||
|
||||
M: adler-32 checksum-bytes ( bytes checksum -- value )
|
||||
drop
|
||||
|
|
|
@ -9,14 +9,14 @@ IN: checksums.sha2
|
|||
|
||||
SYMBOLS: vars M K H S0 S1 process-M word-size block-size ;
|
||||
|
||||
: a 0 ; inline
|
||||
: b 1 ; inline
|
||||
: c 2 ; inline
|
||||
: d 3 ; inline
|
||||
: e 4 ; inline
|
||||
: f 5 ; inline
|
||||
: g 6 ; inline
|
||||
: h 7 ; inline
|
||||
CONSTANT: a 0
|
||||
CONSTANT: b 1
|
||||
CONSTANT: c 2
|
||||
CONSTANT: d 3
|
||||
CONSTANT: e 4
|
||||
CONSTANT: f 5
|
||||
CONSTANT: g 6
|
||||
CONSTANT: h 7
|
||||
|
||||
: initial-H-256 ( -- seq )
|
||||
{
|
||||
|
|
|
@ -5,7 +5,7 @@ sequences vectors fry libc destructors
|
|||
specialized-arrays.direct.alien ;
|
||||
IN: cocoa.enumeration
|
||||
|
||||
: NS-EACH-BUFFER-SIZE 16 ; inline
|
||||
CONSTANT: NS-EACH-BUFFER-SIZE 16
|
||||
|
||||
: with-enumeration-buffers ( quot -- )
|
||||
[
|
||||
|
|
|
@ -4,15 +4,15 @@ USING: arrays kernel math cocoa cocoa.messages cocoa.classes
|
|||
sequences math.bitwise ;
|
||||
IN: cocoa.windows
|
||||
|
||||
: NSBorderlessWindowMask 0 ; inline
|
||||
: NSTitledWindowMask 1 ; inline
|
||||
: NSClosableWindowMask 2 ; inline
|
||||
: NSMiniaturizableWindowMask 4 ; inline
|
||||
: NSResizableWindowMask 8 ; inline
|
||||
CONSTANT: NSBorderlessWindowMask 0
|
||||
CONSTANT: NSTitledWindowMask 1
|
||||
CONSTANT: NSClosableWindowMask 2
|
||||
CONSTANT: NSMiniaturizableWindowMask 4
|
||||
CONSTANT: NSResizableWindowMask 8
|
||||
|
||||
: NSBackingStoreRetained 0 ; inline
|
||||
: NSBackingStoreNonretained 1 ; inline
|
||||
: NSBackingStoreBuffered 2 ; inline
|
||||
CONSTANT: NSBackingStoreRetained 0
|
||||
CONSTANT: NSBackingStoreNonretained 1
|
||||
CONSTANT: NSBackingStoreBuffered 2
|
||||
|
||||
: standard-window-type ( -- n )
|
||||
{
|
||||
|
|
|
@ -18,16 +18,16 @@ M: color red>> ( color -- red ) >rgba red>> ;
|
|||
M: color green>> ( color -- green ) >rgba green>> ;
|
||||
M: color blue>> ( color -- blue ) >rgba blue>> ;
|
||||
|
||||
: black T{ rgba f 0.0 0.0 0.0 1.0 } ; inline
|
||||
: blue T{ rgba f 0.0 0.0 1.0 1.0 } ; inline
|
||||
: cyan T{ rgba f 0 0.941 0.941 1 } ; inline
|
||||
: gray T{ rgba f 0.6 0.6 0.6 1.0 } ; inline
|
||||
: green T{ rgba f 0.0 1.0 0.0 1.0 } ; inline
|
||||
: light-gray T{ rgba f 0.95 0.95 0.95 0.95 } ; inline
|
||||
: light-purple T{ rgba f 0.8 0.8 1.0 1.0 } ; inline
|
||||
: magenta T{ rgba f 0.941 0 0.941 1 } ; inline
|
||||
: orange T{ rgba f 0.941 0.627 0 1 } ; inline
|
||||
: purple T{ rgba f 0.627 0 0.941 1 } ; inline
|
||||
: red T{ rgba f 1.0 0.0 0.0 1.0 } ; inline
|
||||
: white T{ rgba f 1.0 1.0 1.0 1.0 } ; inline
|
||||
: yellow T{ rgba f 1.0 1.0 0.0 1.0 } ; inline
|
||||
CONSTANT: black T{ rgba f 0.0 0.0 0.0 1.0 }
|
||||
CONSTANT: blue T{ rgba f 0.0 0.0 1.0 1.0 }
|
||||
CONSTANT: cyan T{ rgba f 0 0.941 0.941 1 }
|
||||
CONSTANT: gray T{ rgba f 0.6 0.6 0.6 1.0 }
|
||||
CONSTANT: green T{ rgba f 0.0 1.0 0.0 1.0 }
|
||||
CONSTANT: light-gray T{ rgba f 0.95 0.95 0.95 0.95 }
|
||||
CONSTANT: light-purple T{ rgba f 0.8 0.8 1.0 1.0 }
|
||||
CONSTANT: magenta T{ rgba f 0.941 0 0.941 1 }
|
||||
CONSTANT: orange T{ rgba f 0.941 0.627 0 1 }
|
||||
CONSTANT: purple T{ rgba f 0.627 0 0.941 1 }
|
||||
CONSTANT: red T{ rgba f 1.0 0.0 0.0 1.0 }
|
||||
CONSTANT: white T{ rgba f 1.0 1.0 1.0 1.0 }
|
||||
CONSTANT: yellow T{ rgba f 1.0 1.0 0.0 1.0 }
|
||||
|
|
|
@ -4,8 +4,8 @@ USING: math kernel layouts system strings ;
|
|||
IN: compiler.constants
|
||||
|
||||
! These constants must match vm/memory.h
|
||||
: card-bits 8 ; inline
|
||||
: deck-bits 18 ; inline
|
||||
CONSTANT: card-bits 8
|
||||
CONSTANT: deck-bits 18
|
||||
: card-mark ( -- n ) HEX: 40 HEX: 80 bitor ; inline
|
||||
|
||||
! These constants must match vm/layouts.h
|
||||
|
@ -26,25 +26,25 @@ IN: compiler.constants
|
|||
: compiled-header-size ( -- n ) 4 bootstrap-cells ; inline
|
||||
|
||||
! Relocation classes
|
||||
: rc-absolute-cell 0 ; inline
|
||||
: rc-absolute 1 ; inline
|
||||
: rc-relative 2 ; inline
|
||||
: rc-absolute-ppc-2/2 3 ; inline
|
||||
: rc-relative-ppc-2 4 ; inline
|
||||
: rc-relative-ppc-3 5 ; inline
|
||||
: rc-relative-arm-3 6 ; inline
|
||||
: rc-indirect-arm 7 ; inline
|
||||
: rc-indirect-arm-pc 8 ; inline
|
||||
CONSTANT: rc-absolute-cell 0
|
||||
CONSTANT: rc-absolute 1
|
||||
CONSTANT: rc-relative 2
|
||||
CONSTANT: rc-absolute-ppc-2/2 3
|
||||
CONSTANT: rc-relative-ppc-2 4
|
||||
CONSTANT: rc-relative-ppc-3 5
|
||||
CONSTANT: rc-relative-arm-3 6
|
||||
CONSTANT: rc-indirect-arm 7
|
||||
CONSTANT: rc-indirect-arm-pc 8
|
||||
|
||||
! Relocation types
|
||||
: rt-primitive 0 ; inline
|
||||
: rt-dlsym 1 ; inline
|
||||
: rt-dispatch 2 ; inline
|
||||
: rt-xt 3 ; inline
|
||||
: rt-here 4 ; inline
|
||||
: rt-label 5 ; inline
|
||||
: rt-immediate 6 ; inline
|
||||
: rt-stack-chain 7 ; inline
|
||||
CONSTANT: rt-primitive 0
|
||||
CONSTANT: rt-dlsym 1
|
||||
CONSTANT: rt-dispatch 2
|
||||
CONSTANT: rt-xt 3
|
||||
CONSTANT: rt-here 4
|
||||
CONSTANT: rt-label 5
|
||||
CONSTANT: rt-immediate 6
|
||||
CONSTANT: rt-stack-chain 7
|
||||
|
||||
: rc-absolute? ( n -- ? )
|
||||
[ rc-absolute-ppc-2/2 = ]
|
||||
|
|
|
@ -32,9 +32,9 @@ literal?
|
|||
length
|
||||
slots ;
|
||||
|
||||
: null-info T{ value-info f null empty-interval } ; inline
|
||||
CONSTANT: null-info T{ value-info f null empty-interval }
|
||||
|
||||
: object-info T{ value-info f object full-interval } ; inline
|
||||
CONSTANT: object-info T{ value-info f object full-interval }
|
||||
|
||||
: class-interval ( class -- interval )
|
||||
dup real class<=
|
||||
|
|
|
@ -69,11 +69,11 @@ ERROR: index-too-big n ;
|
|||
: omega-k-in-table? ( lzw -- ? )
|
||||
[ omega-k>> ] [ table>> ] bi key? ;
|
||||
|
||||
ERROR: not-in-table ;
|
||||
ERROR: not-in-table value ;
|
||||
|
||||
: write-output ( lzw -- )
|
||||
[
|
||||
[ omega>> ] [ table>> ] bi at* [ not-in-table ] unless
|
||||
[ omega>> ] [ table>> ] bi ?at [ not-in-table ] unless
|
||||
] [
|
||||
[ lzw-bit-width-compress ]
|
||||
[ output>> write-bits ] bi
|
||||
|
|
|
@ -6,7 +6,7 @@ IN: core-foundation
|
|||
TYPEDEF: void* CFTypeRef
|
||||
|
||||
TYPEDEF: void* CFAllocatorRef
|
||||
: kCFAllocatorDefault f ; inline
|
||||
CONSTANT: kCFAllocatorDefault f
|
||||
|
||||
TYPEDEF: bool Boolean
|
||||
TYPEDEF: long CFIndex
|
||||
|
|
|
@ -10,28 +10,28 @@ TYPEDEF: void* CFNumberRef
|
|||
TYPEDEF: void* CFSetRef
|
||||
|
||||
TYPEDEF: int CFNumberType
|
||||
: kCFNumberSInt8Type 1 ; inline
|
||||
: kCFNumberSInt16Type 2 ; inline
|
||||
: kCFNumberSInt32Type 3 ; inline
|
||||
: kCFNumberSInt64Type 4 ; inline
|
||||
: kCFNumberFloat32Type 5 ; inline
|
||||
: kCFNumberFloat64Type 6 ; inline
|
||||
: kCFNumberCharType 7 ; inline
|
||||
: kCFNumberShortType 8 ; inline
|
||||
: kCFNumberIntType 9 ; inline
|
||||
: kCFNumberLongType 10 ; inline
|
||||
: kCFNumberLongLongType 11 ; inline
|
||||
: kCFNumberFloatType 12 ; inline
|
||||
: kCFNumberDoubleType 13 ; inline
|
||||
: kCFNumberCFIndexType 14 ; inline
|
||||
: kCFNumberNSIntegerType 15 ; inline
|
||||
: kCFNumberCGFloatType 16 ; inline
|
||||
: kCFNumberMaxType 16 ; inline
|
||||
CONSTANT: kCFNumberSInt8Type 1
|
||||
CONSTANT: kCFNumberSInt16Type 2
|
||||
CONSTANT: kCFNumberSInt32Type 3
|
||||
CONSTANT: kCFNumberSInt64Type 4
|
||||
CONSTANT: kCFNumberFloat32Type 5
|
||||
CONSTANT: kCFNumberFloat64Type 6
|
||||
CONSTANT: kCFNumberCharType 7
|
||||
CONSTANT: kCFNumberShortType 8
|
||||
CONSTANT: kCFNumberIntType 9
|
||||
CONSTANT: kCFNumberLongType 10
|
||||
CONSTANT: kCFNumberLongLongType 11
|
||||
CONSTANT: kCFNumberFloatType 12
|
||||
CONSTANT: kCFNumberDoubleType 13
|
||||
CONSTANT: kCFNumberCFIndexType 14
|
||||
CONSTANT: kCFNumberNSIntegerType 15
|
||||
CONSTANT: kCFNumberCGFloatType 16
|
||||
CONSTANT: kCFNumberMaxType 16
|
||||
|
||||
TYPEDEF: int CFPropertyListMutabilityOptions
|
||||
: kCFPropertyListImmutable 0 ; inline
|
||||
: kCFPropertyListMutableContainers 1 ; inline
|
||||
: kCFPropertyListMutableContainersAndLeaves 2 ; inline
|
||||
CONSTANT: kCFPropertyListImmutable 0
|
||||
CONSTANT: kCFPropertyListMutableContainers 1
|
||||
CONSTANT: kCFPropertyListMutableContainersAndLeaves 2
|
||||
|
||||
FUNCTION: CFNumberRef CFNumberCreate ( CFAllocatorRef allocator, CFNumberType theType, void* valuePtr ) ;
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ FUNCTION: CFFileDescriptorRef CFFileDescriptorCreate (
|
|||
CFFileDescriptorContext* context
|
||||
) ;
|
||||
|
||||
: kCFFileDescriptorReadCallBack 1 ; inline
|
||||
: kCFFileDescriptorWriteCallBack 2 ; inline
|
||||
CONSTANT: kCFFileDescriptorReadCallBack 1
|
||||
CONSTANT: kCFFileDescriptorWriteCallBack 2
|
||||
|
||||
FUNCTION: void CFFileDescriptorEnableCallBacks (
|
||||
CFFileDescriptorRef f,
|
||||
|
|
|
@ -9,17 +9,17 @@ core-foundation core-foundation.run-loop core-foundation.strings
|
|||
core-foundation.time ;
|
||||
IN: core-foundation.fsevents
|
||||
|
||||
: kFSEventStreamCreateFlagUseCFTypes 2 ; inline
|
||||
: kFSEventStreamCreateFlagWatchRoot 4 ; inline
|
||||
CONSTANT: kFSEventStreamCreateFlagUseCFTypes 2
|
||||
CONSTANT: kFSEventStreamCreateFlagWatchRoot 4
|
||||
|
||||
: kFSEventStreamEventFlagMustScanSubDirs 1 ; inline
|
||||
: kFSEventStreamEventFlagUserDropped 2 ; inline
|
||||
: kFSEventStreamEventFlagKernelDropped 4 ; inline
|
||||
: kFSEventStreamEventFlagEventIdsWrapped 8 ; inline
|
||||
: kFSEventStreamEventFlagHistoryDone 16 ; inline
|
||||
: kFSEventStreamEventFlagRootChanged 32 ; inline
|
||||
: kFSEventStreamEventFlagMount 64 ; inline
|
||||
: kFSEventStreamEventFlagUnmount 128 ; inline
|
||||
CONSTANT: kFSEventStreamEventFlagMustScanSubDirs 1
|
||||
CONSTANT: kFSEventStreamEventFlagUserDropped 2
|
||||
CONSTANT: kFSEventStreamEventFlagKernelDropped 4
|
||||
CONSTANT: kFSEventStreamEventFlagEventIdsWrapped 8
|
||||
CONSTANT: kFSEventStreamEventFlagHistoryDone 16
|
||||
CONSTANT: kFSEventStreamEventFlagRootChanged 32
|
||||
CONSTANT: kFSEventStreamEventFlagMount 64
|
||||
CONSTANT: kFSEventStreamEventFlagUnmount 128
|
||||
|
||||
TYPEDEF: int FSEventStreamCreateFlags
|
||||
TYPEDEF: int FSEventStreamEventFlags
|
||||
|
@ -36,7 +36,7 @@ C-STRUCT: FSEventStreamContext
|
|||
! callback(FSEventStreamRef streamRef, void *clientCallBackInfo, size_t numEvents, void *eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]);
|
||||
TYPEDEF: void* FSEventStreamCallback
|
||||
|
||||
: FSEventStreamEventIdSinceNow HEX: FFFFFFFFFFFFFFFF ; inline
|
||||
CONSTANT: FSEventStreamEventIdSinceNow HEX: FFFFFFFFFFFFFFFF
|
||||
|
||||
FUNCTION: FSEventStreamRef FSEventStreamCreate (
|
||||
CFAllocatorRef allocator,
|
||||
|
|
|
@ -7,10 +7,10 @@ core-foundation.file-descriptors core-foundation.timers
|
|||
core-foundation.time ;
|
||||
IN: core-foundation.run-loop
|
||||
|
||||
: kCFRunLoopRunFinished 1 ; inline
|
||||
: kCFRunLoopRunStopped 2 ; inline
|
||||
: kCFRunLoopRunTimedOut 3 ; inline
|
||||
: kCFRunLoopRunHandledSource 4 ; inline
|
||||
CONSTANT: kCFRunLoopRunFinished 1
|
||||
CONSTANT: kCFRunLoopRunStopped 2
|
||||
CONSTANT: kCFRunLoopRunTimedOut 3
|
||||
CONSTANT: kCFRunLoopRunHandledSource 4
|
||||
|
||||
TYPEDEF: void* CFRunLoopRef
|
||||
TYPEDEF: void* CFRunLoopSourceRef
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: alien.syntax kernel core-foundation.strings
|
|||
core-foundation ;
|
||||
IN: core-foundation.urls
|
||||
|
||||
: kCFURLPOSIXPathStyle 0 ; inline
|
||||
CONSTANT: kCFURLPOSIXPathStyle 0
|
||||
|
||||
TYPEDEF: void* CFURLRef
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ M: ppc machine-registers
|
|||
{ double-float-regs T{ range f 0 29 1 } }
|
||||
} ;
|
||||
|
||||
: scratch-reg 28 ; inline
|
||||
: fp-scratch-reg 30 ; inline
|
||||
CONSTANT: scratch-reg 28
|
||||
CONSTANT: fp-scratch-reg 30
|
||||
|
||||
M: ppc two-operand? f ;
|
||||
|
||||
|
@ -40,8 +40,8 @@ M: ppc %load-reference ( reg obj -- )
|
|||
M: ppc %alien-global ( register symbol dll -- )
|
||||
[ 0 swap LOAD32 ] 2dip rc-absolute-ppc-2/2 rel-dlsym ;
|
||||
|
||||
: ds-reg 29 ; inline
|
||||
: rs-reg 30 ; inline
|
||||
CONSTANT: ds-reg 29
|
||||
CONSTANT: rs-reg 30
|
||||
|
||||
GENERIC: loc-reg ( loc -- reg )
|
||||
|
||||
|
|
|
@ -1,18 +1,54 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel ;
|
||||
USING: accessors kernel continuations fry words ;
|
||||
IN: db.errors
|
||||
|
||||
ERROR: db-error ;
|
||||
ERROR: sql-error ;
|
||||
ERROR: sql-error location ;
|
||||
|
||||
ERROR: table-exists ;
|
||||
ERROR: bad-schema ;
|
||||
|
||||
ERROR: sql-syntax-error error ;
|
||||
ERROR: sql-unknown-error < sql-error message ;
|
||||
: <sql-unknown-error> ( message -- error )
|
||||
\ sql-unknown-error new
|
||||
swap >>message ;
|
||||
|
||||
ERROR: sql-table-exists table ;
|
||||
C: <sql-table-exists> sql-table-exists
|
||||
ERROR: sql-table-exists < sql-error table ;
|
||||
: <sql-table-exists> ( table -- error )
|
||||
\ sql-table-exists new
|
||||
swap >>table ;
|
||||
|
||||
ERROR: sql-table-missing table ;
|
||||
C: <sql-table-missing> sql-table-missing
|
||||
ERROR: sql-table-missing < sql-error table ;
|
||||
: <sql-table-missing> ( table -- error )
|
||||
\ sql-table-missing new
|
||||
swap >>table ;
|
||||
|
||||
ERROR: sql-syntax-error < sql-error message ;
|
||||
: <sql-syntax-error> ( message -- error )
|
||||
\ sql-syntax-error new
|
||||
swap >>message ;
|
||||
|
||||
ERROR: sql-function-exists < sql-error message ;
|
||||
: <sql-function-exists> ( message -- error )
|
||||
\ sql-function-exists new
|
||||
swap >>message ;
|
||||
|
||||
ERROR: sql-function-missing < sql-error message ;
|
||||
: <sql-function-missing> ( message -- error )
|
||||
\ sql-function-missing new
|
||||
swap >>message ;
|
||||
|
||||
: ignore-error ( quot word -- )
|
||||
'[ dup _ execute [ drop ] [ rethrow ] if ] recover ; inline
|
||||
|
||||
: ignore-table-exists ( quot -- )
|
||||
\ sql-table-exists? ignore-error ; inline
|
||||
|
||||
: ignore-table-missing ( quot -- )
|
||||
\ sql-table-missing? ignore-error ; inline
|
||||
|
||||
: ignore-function-exists ( quot -- )
|
||||
\ sql-function-exists? ignore-error ; inline
|
||||
|
||||
: ignore-function-missing ( quot -- )
|
||||
\ sql-function-missing? ignore-error ; inline
|
||||
|
|
|
@ -1,4 +1,32 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test db.errors.postgresql ;
|
||||
USING: accessors combinators.short-circuit db db.errors
|
||||
db.errors.postgresql db.postgresql io.files.unique kernel namespaces
|
||||
tools.test db.tester continuations ;
|
||||
IN: db.errors.postgresql.tests
|
||||
|
||||
postgresql-test-db [
|
||||
|
||||
[ "drop table foo;" sql-command ] ignore-errors
|
||||
[ "drop table ship;" sql-command ] ignore-errors
|
||||
|
||||
[
|
||||
"insert into foo (id) values('1');" sql-command
|
||||
] [
|
||||
{ [ sql-table-missing? ] [ table>> "foo" = ] } 1&&
|
||||
] must-fail-with
|
||||
|
||||
[
|
||||
"create table ship(id integer);" sql-command
|
||||
"create table ship(id integer);" sql-command
|
||||
] [
|
||||
{ [ sql-table-exists? ] [ table>> "ship" = ] } 1&&
|
||||
] must-fail-with
|
||||
|
||||
[
|
||||
"create table foo(id) lol;" sql-command
|
||||
] [
|
||||
sql-syntax-error?
|
||||
] must-fail-with
|
||||
|
||||
] with-db
|
||||
|
|
|
@ -1,4 +1,53 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: ;
|
||||
USING: kernel db.errors peg.ebnf strings sequences math
|
||||
combinators.short-circuit accessors math.parser quoting ;
|
||||
IN: db.errors.postgresql
|
||||
|
||||
EBNF: parse-postgresql-sql-error
|
||||
|
||||
Error = "ERROR:" [ ]+
|
||||
|
||||
TableError =
|
||||
Error ("relation "|"table ")(!(" already exists").)+:table " already exists"
|
||||
=> [[ table >string unquote <sql-table-exists> ]]
|
||||
| Error ("relation "|"table ")(!(" does not exist").)+:table " does not exist"
|
||||
=> [[ table >string unquote <sql-table-missing> ]]
|
||||
|
||||
FunctionError =
|
||||
Error "function" (!(" already exists").)+:table " already exists"
|
||||
=> [[ table >string <sql-function-exists> ]]
|
||||
| Error "function" (!(" does not exist").)+:table " does not exist"
|
||||
=> [[ table >string <sql-function-missing> ]]
|
||||
|
||||
SyntaxError =
|
||||
Error "syntax error at end of input":error
|
||||
=> [[ error >string <sql-syntax-error> ]]
|
||||
| Error "syntax error at or near " .+:syntaxerror
|
||||
=> [[ syntaxerror >string unquote <sql-syntax-error> ]]
|
||||
|
||||
UnknownError = .* => [[ >string <sql-unknown-error> ]]
|
||||
|
||||
PostgresqlSqlError = (TableError | FunctionError | SyntaxError | UnknownError)
|
||||
|
||||
;EBNF
|
||||
|
||||
|
||||
ERROR: parse-postgresql-location column line text ;
|
||||
C: <parse-postgresql-location> parse-postgresql-location
|
||||
|
||||
EBNF: parse-postgresql-line-error
|
||||
|
||||
Line = "LINE " [0-9]+:line ": " .+:sql
|
||||
=> [[ f line >string string>number sql >string <parse-postgresql-location> ]]
|
||||
|
||||
;EBNF
|
||||
|
||||
:: set-caret-position ( error caret-line -- error )
|
||||
caret-line length
|
||||
error line>> number>string length "LINE : " length +
|
||||
- [ error ] dip >>column ;
|
||||
|
||||
: postgresql-location ( line column -- obj )
|
||||
[ parse-postgresql-line-error ] dip
|
||||
set-caret-position ;
|
||||
|
|
|
@ -1,15 +1,8 @@
|
|||
USING: kernel db.postgresql alien continuations io classes
|
||||
prettyprint sequences namespaces tools.test db db.private
|
||||
db.tuples db.types unicode.case accessors system ;
|
||||
db.tuples db.types unicode.case accessors system db.tester ;
|
||||
IN: db.postgresql.tests
|
||||
|
||||
: postgresql-test-db ( -- postgresql-db )
|
||||
<postgresql-db>
|
||||
"localhost" >>host
|
||||
"postgres" >>username
|
||||
"thepasswordistrust" >>password
|
||||
"factor-test" >>database ;
|
||||
|
||||
os windows? cpu x86.64? and [
|
||||
[ ] [ postgresql-test-db [ ] with-db ] unit-test
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ sequences debugger db db.postgresql.lib db.postgresql.ffi
|
|||
db.tuples db.types tools.annotations math.ranges
|
||||
combinators classes locals words tools.walker db.private
|
||||
nmake accessors random db.queries destructors db.tuples.private
|
||||
db.postgresql ;
|
||||
db.postgresql db.errors.postgresql splitting ;
|
||||
IN: db.postgresql
|
||||
|
||||
TUPLE: postgresql-db host port pgopts pgtty database username password ;
|
||||
|
@ -282,4 +282,12 @@ M: postgresql-db-connection compound ( string object -- string' )
|
|||
} case ;
|
||||
|
||||
M: postgresql-db-connection parse-db-error
|
||||
;
|
||||
"\n" split dup length {
|
||||
{ 1 [ first parse-postgresql-sql-error ] }
|
||||
{ 3 [
|
||||
first3
|
||||
[ parse-postgresql-sql-error ] 2dip
|
||||
postgresql-location >>location
|
||||
] }
|
||||
} case ;
|
||||
|
||||
|
|
|
@ -11,12 +11,17 @@ IN: db.sqlite.lib
|
|||
ERROR: sqlite-error < db-error n string ;
|
||||
ERROR: sqlite-sql-error < sql-error n string ;
|
||||
|
||||
: <sqlite-sql-error> ( n string -- error )
|
||||
\ sqlite-sql-error new
|
||||
swap >>string
|
||||
swap >>n ;
|
||||
|
||||
: throw-sqlite-error ( n -- * )
|
||||
dup sqlite-error-messages nth sqlite-error ;
|
||||
|
||||
: sqlite-statement-error ( -- * )
|
||||
SQLITE_ERROR
|
||||
db-connection get handle>> sqlite3_errmsg sqlite-sql-error ;
|
||||
db-connection get handle>> sqlite3_errmsg <sqlite-sql-error> throw ;
|
||||
|
||||
: sqlite-check-result ( n -- )
|
||||
{
|
||||
|
|
|
@ -2,9 +2,42 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: concurrency.combinators db.pools db.sqlite db.tuples
|
||||
db.types kernel math random threads tools.test db sequences
|
||||
io prettyprint ;
|
||||
io prettyprint db.postgresql db.sqlite accessors io.files.temp
|
||||
namespaces fry system ;
|
||||
IN: db.tester
|
||||
|
||||
: postgresql-test-db ( -- postgresql-db )
|
||||
<postgresql-db>
|
||||
"localhost" >>host
|
||||
"postgres" >>username
|
||||
"thepasswordistrust" >>password
|
||||
"factor-test" >>database ;
|
||||
|
||||
: sqlite-test-db ( -- sqlite-db )
|
||||
"tuples-test.db" temp-file <sqlite-db> ;
|
||||
|
||||
|
||||
! These words leak resources, but are useful for interactivel testing
|
||||
: set-sqlite-db ( -- )
|
||||
sqlite-db db-open db-connection set ;
|
||||
|
||||
: set-postgresql-db ( -- )
|
||||
postgresql-db db-open db-connection set ;
|
||||
|
||||
|
||||
: test-sqlite ( quot -- )
|
||||
'[
|
||||
[ ] [ sqlite-test-db _ with-db ] unit-test
|
||||
] call ; inline
|
||||
|
||||
: test-postgresql ( quot -- )
|
||||
'[
|
||||
os windows? cpu x86.64? and [
|
||||
[ ] [ postgresql-test-db _ with-db ] unit-test
|
||||
] unless
|
||||
] call ; inline
|
||||
|
||||
|
||||
TUPLE: test-1 id a b c ;
|
||||
|
||||
test-1 "TEST1" {
|
||||
|
@ -23,9 +56,6 @@ test-2 "TEST2" {
|
|||
{ "z" "Z" { VARCHAR 256 } +not-null+ }
|
||||
} define-persistent
|
||||
|
||||
: sqlite-test-db ( -- db ) "test.db" <sqlite-db> ;
|
||||
: test-db ( -- db ) "test.db" <sqlite-db> ;
|
||||
|
||||
: db-tester ( test-db -- )
|
||||
[
|
||||
[
|
||||
|
|
|
@ -4,40 +4,10 @@ USING: io.files io.files.temp kernel tools.test db db.tuples classes
|
|||
db.types continuations namespaces math math.ranges
|
||||
prettyprint calendar sequences db.sqlite math.intervals
|
||||
db.postgresql accessors random math.bitwise system
|
||||
math.ranges strings urls fry db.tuples.private db.private ;
|
||||
math.ranges strings urls fry db.tuples.private db.private
|
||||
db.tester ;
|
||||
IN: db.tuples.tests
|
||||
|
||||
: sqlite-db ( -- sqlite-db )
|
||||
"tuples-test.db" temp-file <sqlite-db> ;
|
||||
|
||||
: test-sqlite ( quot -- )
|
||||
'[
|
||||
[ ] [
|
||||
"tuples-test.db" temp-file <sqlite-db> _ with-db
|
||||
] unit-test
|
||||
] call ; inline
|
||||
|
||||
: postgresql-db ( -- postgresql-db )
|
||||
<postgresql-db>
|
||||
"localhost" >>host
|
||||
"postgres" >>username
|
||||
"thepasswordistrust" >>password
|
||||
"factor-test" >>database ;
|
||||
|
||||
: test-postgresql ( quot -- )
|
||||
'[
|
||||
os windows? cpu x86.64? and [
|
||||
[ ] [ postgresql-db _ with-db ] unit-test
|
||||
] unless
|
||||
] call ; inline
|
||||
|
||||
! These words leak resources, but are useful for interactivel testing
|
||||
: sqlite-test-db ( -- )
|
||||
sqlite-db db-open db-connection set ;
|
||||
|
||||
: postgresql-test-db ( -- )
|
||||
postgresql-db db-open db-connection set ;
|
||||
|
||||
TUPLE: person the-id the-name the-number the-real
|
||||
ts date time blob factor-blob url ;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: arrays assocs classes db kernel namespaces
|
|||
classes.tuple words sequences slots math accessors
|
||||
math.parser io prettyprint db.types continuations
|
||||
destructors mirrors sets db.types db.private fry
|
||||
combinators.short-circuit ;
|
||||
combinators.short-circuit db.errors ;
|
||||
IN: db.tuples
|
||||
|
||||
HOOK: create-sql-statement db-connection ( class -- object )
|
||||
|
@ -118,13 +118,15 @@ ERROR: no-defined-persistent object ;
|
|||
ensure-defined-persistent
|
||||
[
|
||||
'[
|
||||
_ drop-sql-statement [ execute-statement ] with-disposals
|
||||
] ignore-errors
|
||||
[
|
||||
_ drop-sql-statement [ execute-statement ] with-disposals
|
||||
] ignore-table-missing
|
||||
] ignore-function-missing
|
||||
] [ create-table ] bi ;
|
||||
|
||||
: ensure-table ( class -- )
|
||||
ensure-defined-persistent
|
||||
'[ _ create-table ] ignore-errors ;
|
||||
'[ [ _ create-table ] ignore-table-exists ] ignore-function-exists ;
|
||||
|
||||
: ensure-tables ( classes -- ) [ ensure-table ] each ;
|
||||
|
||||
|
|
|
@ -124,9 +124,6 @@ FACTOR-BLOB NULL URL ;
|
|||
! PostgreSQL Types:
|
||||
! http://developer.postgresql.org/pgdocs/postgres/datatype.html
|
||||
|
||||
: ?at ( obj assoc -- value/obj ? )
|
||||
dupd at* [ [ nip ] [ drop ] if ] keep ;
|
||||
|
||||
ERROR: unknown-modifier modifier ;
|
||||
|
||||
: lookup-modifier ( obj -- string )
|
||||
|
|
|
@ -54,7 +54,7 @@ M: no-article summary
|
|||
drop "Help article does not exist" ;
|
||||
|
||||
: article ( name -- article )
|
||||
dup articles get at* [ nip ] [ drop no-article ] if ;
|
||||
articles get ?at [ no-article ] unless ;
|
||||
|
||||
M: object article-name article article-name ;
|
||||
M: object article-title article article-title ;
|
||||
|
|
|
@ -243,9 +243,6 @@ ERROR: bad-tiff-magic bytes ;
|
|||
|
||||
ERROR: no-tag class ;
|
||||
|
||||
: ?at ( key assoc -- value/key ? )
|
||||
dupd at* [ nip t ] [ drop f ] if ; inline
|
||||
|
||||
: find-tag ( idf class -- tag )
|
||||
swap processed-tags>> ?at [ no-tag ] unless ;
|
||||
|
||||
|
|
|
@ -114,21 +114,21 @@ M: file-info file-mode? [ permissions>> ] dip mask? ;
|
|||
|
||||
PRIVATE>
|
||||
|
||||
: UID OCT: 0004000 ; inline
|
||||
: GID OCT: 0002000 ; inline
|
||||
: STICKY OCT: 0001000 ; inline
|
||||
: USER-ALL OCT: 0000700 ; inline
|
||||
: USER-READ OCT: 0000400 ; inline
|
||||
: USER-WRITE OCT: 0000200 ; inline
|
||||
: USER-EXECUTE OCT: 0000100 ; inline
|
||||
: GROUP-ALL OCT: 0000070 ; inline
|
||||
: GROUP-READ OCT: 0000040 ; inline
|
||||
: GROUP-WRITE OCT: 0000020 ; inline
|
||||
: GROUP-EXECUTE OCT: 0000010 ; inline
|
||||
: OTHER-ALL OCT: 0000007 ; inline
|
||||
: OTHER-READ OCT: 0000004 ; inline
|
||||
: OTHER-WRITE OCT: 0000002 ; inline
|
||||
: OTHER-EXECUTE OCT: 0000001 ; inline
|
||||
CONSTANT: UID OCT: 0004000
|
||||
CONSTANT: GID OCT: 0002000
|
||||
CONSTANT: STICKY OCT: 0001000
|
||||
CONSTANT: USER-ALL OCT: 0000700
|
||||
CONSTANT: USER-READ OCT: 0000400
|
||||
CONSTANT: USER-WRITE OCT: 0000200
|
||||
CONSTANT: USER-EXECUTE OCT: 0000100
|
||||
CONSTANT: GROUP-ALL OCT: 0000070
|
||||
CONSTANT: GROUP-READ OCT: 0000040
|
||||
CONSTANT: GROUP-WRITE OCT: 0000020
|
||||
CONSTANT: GROUP-EXECUTE OCT: 0000010
|
||||
CONSTANT: OTHER-ALL OCT: 0000007
|
||||
CONSTANT: OTHER-READ OCT: 0000004
|
||||
CONSTANT: OTHER-WRITE OCT: 0000002
|
||||
CONSTANT: OTHER-EXECUTE OCT: 0000001
|
||||
|
||||
: uid? ( obj -- ? ) UID file-mode? ;
|
||||
: gid? ( obj -- ? ) GID file-mode? ;
|
||||
|
|
|
@ -94,7 +94,7 @@ M: unix (datagram)
|
|||
|
||||
SYMBOL: receive-buffer
|
||||
|
||||
: packet-size 65536 ; inline
|
||||
CONSTANT: packet-size 65536
|
||||
|
||||
[ packet-size malloc receive-buffer set-global ] "io.sockets.unix" add-init-hook
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@ IN: math.bitwise.tests
|
|||
[ 268 ] [ 1 { 8 { 3 2 } } bitfield ] unit-test
|
||||
[ 512 ] [ 1 { { 1+ 8 } } bitfield ] unit-test
|
||||
|
||||
: a 1 ; inline
|
||||
: b 2 ; inline
|
||||
CONSTANT: a 1
|
||||
CONSTANT: b 2
|
||||
|
||||
: foo ( -- flags ) { a b } flags ;
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
USING: multiline kernel sequences io splitting fry namespaces
|
||||
http.parsers hashtables assocs combinators ascii io.files.unique
|
||||
accessors io.encodings.binary io.files byte-arrays math
|
||||
io.streams.string combinators.short-circuit strings math.order ;
|
||||
io.streams.string combinators.short-circuit strings math.order
|
||||
quoting ;
|
||||
IN: mime.multipart
|
||||
|
||||
CONSTANT: buffer-size 65536
|
||||
|
@ -75,18 +76,6 @@ ERROR: end-of-stream multipart ;
|
|||
: empty-name? ( string -- ? )
|
||||
{ "''" "\"\"" "" f } member? ;
|
||||
|
||||
: quote? ( ch -- ? ) "'\"" member? ;
|
||||
|
||||
: quoted? ( str -- ? )
|
||||
{
|
||||
[ length 1 > ]
|
||||
[ first quote? ]
|
||||
[ [ first ] [ peek ] bi = ]
|
||||
} 1&& ;
|
||||
|
||||
: unquote ( str -- newstr )
|
||||
dup quoted? [ but-last-slice rest-slice >string ] when ;
|
||||
|
||||
: save-uploaded-file ( multipart -- )
|
||||
dup filename>> empty-name? [
|
||||
drop
|
||||
|
|
|
@ -48,14 +48,14 @@ C-STRUCT: bio
|
|||
{ "void*" "crypto-ex-data-stack" }
|
||||
{ "int" "crypto-ex-data-dummy" } ;
|
||||
|
||||
: BIO_NOCLOSE HEX: 00 ; inline
|
||||
: BIO_CLOSE HEX: 01 ; inline
|
||||
CONSTANT: BIO_NOCLOSE HEX: 00
|
||||
CONSTANT: BIO_CLOSE HEX: 01
|
||||
|
||||
: RSA_3 HEX: 3 ; inline
|
||||
: RSA_F4 HEX: 10001 ; inline
|
||||
CONSTANT: RSA_3 HEX: 3
|
||||
CONSTANT: RSA_F4 HEX: 10001
|
||||
|
||||
: BIO_C_SET_SSL 109 ; inline
|
||||
: BIO_C_GET_SSL 110 ; inline
|
||||
CONSTANT: BIO_C_SET_SSL 109
|
||||
CONSTANT: BIO_C_GET_SSL 110
|
||||
|
||||
LIBRARY: libcrypto
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ TUPLE: persistent-vector
|
|||
|
||||
M: persistent-vector length count>> ;
|
||||
|
||||
: node-size 32 ; inline
|
||||
CONSTANT: node-size 32
|
||||
|
||||
: node-mask ( m -- n ) node-size mod ; inline
|
||||
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: help.markup help.syntax strings ;
|
||||
IN: quoting
|
||||
|
||||
HELP: quote?
|
||||
{ $values
|
||||
{ "ch" "a character" }
|
||||
{ "?" "a boolean" }
|
||||
}
|
||||
{ $description "Returns true if the character is a single or double quote." } ;
|
||||
|
||||
HELP: quoted?
|
||||
{ $values
|
||||
{ "str" string }
|
||||
{ "?" "a boolean" }
|
||||
}
|
||||
{ $description "Returns true if a string is surrounded by matching single or double quotes as the first and last characters." } ;
|
||||
|
||||
HELP: unquote
|
||||
{ $values
|
||||
{ "str" string }
|
||||
{ "newstr" string }
|
||||
}
|
||||
{ $description "Removes a pair of matching single or double quotes from a string." } ;
|
||||
|
||||
ARTICLE: "quoting" "Quotation marks"
|
||||
"The " { $vocab-link "quoting" } " vocabulary is for removing quotes from a string." $nl
|
||||
"Removing quotes:"
|
||||
{ $subsection unquote } ;
|
||||
|
||||
ABOUT: "quoting"
|
|
@ -0,0 +1,10 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test quoting ;
|
||||
IN: quoting.tests
|
||||
|
||||
|
||||
[ "abc" ] [ "'abc'" unquote ] unit-test
|
||||
[ "abc" ] [ "\"abc\"" unquote ] unit-test
|
||||
[ "'abc" ] [ "'abc" unquote ] unit-test
|
||||
[ "abc'" ] [ "abc'" unquote ] unit-test
|
|
@ -0,0 +1,16 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: combinators.short-circuit kernel math sequences strings ;
|
||||
IN: quoting
|
||||
|
||||
: quote? ( ch -- ? ) "'\"" member? ;
|
||||
|
||||
: quoted? ( str -- ? )
|
||||
{
|
||||
[ length 1 > ]
|
||||
[ first quote? ]
|
||||
[ [ first ] [ peek ] bi = ]
|
||||
} 1&& ;
|
||||
|
||||
: unquote ( str -- newstr )
|
||||
dup quoted? [ but-last-slice rest-slice >string ] when ;
|
|
@ -11,9 +11,9 @@ IN: random.mersenne-twister
|
|||
|
||||
TUPLE: mersenne-twister { seq uint-array } { i fixnum } ;
|
||||
|
||||
: n 624 ; inline
|
||||
: m 397 ; inline
|
||||
: a uint-array{ 0 HEX: 9908b0df } ; inline
|
||||
CONSTANT: n 624
|
||||
CONSTANT: m 397
|
||||
CONSTANT: a uint-array{ 0 HEX: 9908b0df }
|
||||
|
||||
: y ( n seq -- y )
|
||||
[ nth-unsafe 31 mask-bit ]
|
||||
|
|
|
@ -105,7 +105,7 @@ IN: stack-checker.transforms
|
|||
] 1 define-transform
|
||||
|
||||
! Membership testing
|
||||
: bit-member-n 256 ; inline
|
||||
CONSTANT: bit-member-n 256
|
||||
|
||||
: bit-member? ( seq -- ? )
|
||||
#! Can we use a fast byte array test here?
|
||||
|
|
|
@ -24,10 +24,10 @@ FUNCTION: void ud_translate_att ( ud* u ) ;
|
|||
: UD_SYN_INTEL ( -- addr ) &: ud_translate_intel ; inline
|
||||
: UD_SYN_ATT ( -- addr ) &: ud_translate_att ; inline
|
||||
|
||||
: UD_EOI -1 ; inline
|
||||
: UD_INP_CACHE_SZ 32 ; inline
|
||||
: UD_VENDOR_AMD 0 ; inline
|
||||
: UD_VENDOR_INTEL 1 ; inline
|
||||
CONSTANT: UD_EOI -1
|
||||
CONSTANT: UD_INP_CACHE_SZ 32
|
||||
CONSTANT: UD_VENDOR_AMD 0
|
||||
CONSTANT: UD_VENDOR_INTEL 1
|
||||
|
||||
FUNCTION: void ud_init ( ud* u ) ;
|
||||
FUNCTION: void ud_set_mode ( ud* u, uint8_t mode ) ;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: help.markup help.syntax kernel strings words ;
|
||||
USING: help.markup help.syntax kernel strings words vocabs ;
|
||||
IN: tools.scaffold
|
||||
|
||||
HELP: developer-name
|
||||
|
@ -13,7 +13,7 @@ HELP: help.
|
|||
{ $description "Prints out scaffold help markup for a given word." } ;
|
||||
|
||||
HELP: scaffold-help
|
||||
{ $values { "string" string } }
|
||||
{ $values { "vocab" vocab } }
|
||||
{ $description "Takes an existing vocabulary and creates a help file with scaffolded help for each word. This word only works if no help file yet exists." } ;
|
||||
|
||||
HELP: scaffold-undocumented
|
||||
|
@ -28,6 +28,21 @@ HELP: scaffold-vocab
|
|||
{ "vocab-root" "a vocabulary root string" } { "string" string } }
|
||||
{ $description "Creates a directory in the given root for a new vocabulary and adds a main .factor file, a tests file, and an authors.txt file." } ;
|
||||
|
||||
HELP: scaffold-emacs
|
||||
{ $description "Touches the .emacs file in your home directory and provides a clickable link to open it in an editor." } ;
|
||||
|
||||
HELP: scaffold-factor-boot-rc
|
||||
{ $description "Touches the .factor-boot-rc file in your home directory and provides a clickable link to open it in an editor." } ;
|
||||
|
||||
HELP: scaffold-factor-rc
|
||||
{ $description "Touches the .factor-rc file in your home directory and provides a clickable link to open it in an editor." } ;
|
||||
|
||||
HELP: scaffold-rc
|
||||
{ $values
|
||||
{ "path" "a pathname string" }
|
||||
}
|
||||
{ $description "Touches the given path in your home directory and provides a clickable link to open it in an editor." } ;
|
||||
|
||||
HELP: using
|
||||
{ $description "Stores the vocabularies that are pulled into the documentation file from looking up the stack effect types." } ;
|
||||
|
||||
|
@ -40,7 +55,12 @@ ARTICLE: "tools.scaffold" "Scaffold tool"
|
|||
{ $subsection scaffold-help }
|
||||
{ $subsection scaffold-undocumented }
|
||||
{ $subsection help. }
|
||||
"Types that are unrecognized by the scaffold generator will be of type " { $link null } ". The developer should change these to strings that describe the stack effect names instead."
|
||||
"Types that are unrecognized by the scaffold generator will be of type " { $link null } ". The developer should change these to strings that describe the stack effect names instead." $nl
|
||||
"Scaffolding a configuration file:"
|
||||
{ $subsection scaffold-rc }
|
||||
{ $subsection scaffold-factor-boot-rc }
|
||||
{ $subsection scaffold-factor-rc }
|
||||
{ $subsection scaffold-emacs }
|
||||
;
|
||||
|
||||
ABOUT: "tools.scaffold"
|
||||
|
|
|
@ -5,7 +5,7 @@ io.encodings.utf8 hashtables kernel namespaces sequences
|
|||
vocabs.loader io combinators calendar accessors math.parser
|
||||
io.streams.string ui.tools.operations quotations strings arrays
|
||||
prettyprint words vocabs sorting sets classes math alien urls
|
||||
splitting ascii ;
|
||||
splitting ascii combinators.short-circuit ;
|
||||
IN: tools.scaffold
|
||||
|
||||
SYMBOL: developer-name
|
||||
|
@ -18,37 +18,61 @@ ERROR: no-vocab vocab ;
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: root? ( string -- ? ) vocab-roots get member? ;
|
||||
: vocab-root? ( string -- ? ) vocab-roots get member? ;
|
||||
|
||||
: contains-dot? ( string -- ? ) ".." swap subseq? ;
|
||||
|
||||
: contains-separator? ( string -- ? ) [ path-separator? ] any? ;
|
||||
|
||||
: check-vocab-name ( string -- string )
|
||||
dup contains-dot? [ vocab-name-contains-dot ] when
|
||||
dup contains-separator? [ vocab-name-contains-separator ] when ;
|
||||
[ ]
|
||||
[ contains-dot? [ vocab-name-contains-dot ] when ]
|
||||
[ contains-separator? [ vocab-name-contains-separator ] when ] tri ;
|
||||
|
||||
: check-root ( string -- string )
|
||||
dup root? [ not-a-vocab-root ] unless ;
|
||||
dup vocab-root? [ not-a-vocab-root ] unless ;
|
||||
|
||||
: check-vocab ( vocab -- vocab )
|
||||
dup find-vocab-root [ no-vocab ] unless ;
|
||||
|
||||
: check-vocab-root/vocab ( vocab-root string -- vocab-root string )
|
||||
[ check-root ] [ check-vocab-name ] bi* ;
|
||||
|
||||
: replace-vocab-separators ( vocab -- path )
|
||||
path-separator first CHAR: . associate substitute ; inline
|
||||
|
||||
: vocab-root/vocab>path ( vocab-root vocab -- path )
|
||||
check-vocab-root/vocab
|
||||
[ ] [ replace-vocab-separators ] bi* append-path ;
|
||||
|
||||
: vocab>path ( vocab -- path )
|
||||
check-vocab
|
||||
[ find-vocab-root ] keep vocab-root/vocab>path ;
|
||||
|
||||
: vocab-root/vocab/file>path ( vocab-root vocab file -- path )
|
||||
[ vocab-root/vocab>path ] dip append-path ;
|
||||
|
||||
: vocab-root/vocab/suffix>path ( vocab-root vocab suffix -- path )
|
||||
[ vocab-root/vocab>path dup file-name append-path ] dip append ;
|
||||
|
||||
: vocab/suffix>path ( vocab suffix -- path )
|
||||
[ vocab>path dup file-name append-path ] dip append ;
|
||||
|
||||
: directory-exists ( path -- )
|
||||
"Not creating a directory, it already exists: " write print ;
|
||||
|
||||
: scaffold-directory ( path -- )
|
||||
: scaffold-directory ( vocab-root vocab -- )
|
||||
vocab-root/vocab>path
|
||||
dup exists? [ directory-exists ] [ make-directories ] if ;
|
||||
|
||||
: not-scaffolding ( path -- )
|
||||
"Not creating scaffolding for " write <pathname> . ;
|
||||
: not-scaffolding ( path -- path )
|
||||
"Not creating scaffolding for " write dup <pathname> . ;
|
||||
|
||||
: scaffolding ( path -- )
|
||||
"Creating scaffolding for " write <pathname> . ;
|
||||
: scaffolding ( path -- path )
|
||||
"Creating scaffolding for " write dup <pathname> . ;
|
||||
|
||||
: (scaffold-path) ( path string -- path )
|
||||
dupd [ file-name ] dip append append-path ;
|
||||
|
||||
: scaffold-path ( path string -- path ? )
|
||||
(scaffold-path)
|
||||
dup exists? [ dup not-scaffolding f ] [ dup scaffolding t ] if ;
|
||||
: scaffolding? ( path -- path ? )
|
||||
dup exists? [ not-scaffolding f ] [ scaffolding t ] if ;
|
||||
|
||||
: scaffold-copyright ( -- )
|
||||
"! Copyright (C) " write now year>> number>string write
|
||||
|
@ -62,37 +86,25 @@ ERROR: no-vocab vocab ;
|
|||
"IN: " write print
|
||||
] with-string-writer ;
|
||||
|
||||
: set-scaffold-main-file ( path vocab -- )
|
||||
main-file-string swap utf8 set-file-contents ;
|
||||
: set-scaffold-main-file ( vocab path -- )
|
||||
[ main-file-string ] dip utf8 set-file-contents ;
|
||||
|
||||
: scaffold-main ( path vocab -- )
|
||||
[ ".factor" scaffold-path ] dip
|
||||
swap [ set-scaffold-main-file ] [ 2drop ] if ;
|
||||
|
||||
: tests-file-string ( vocab -- string )
|
||||
[
|
||||
scaffold-copyright
|
||||
"USING: tools.test " write dup write " ;" print
|
||||
"IN: " write write ".tests" print
|
||||
] with-string-writer ;
|
||||
|
||||
: set-scaffold-tests-file ( path vocab -- )
|
||||
tests-file-string swap utf8 set-file-contents ;
|
||||
|
||||
: scaffold-tests ( path vocab -- )
|
||||
[ "-tests.factor" scaffold-path ] dip
|
||||
swap [ set-scaffold-tests-file ] [ 2drop ] if ;
|
||||
|
||||
: scaffold-authors ( path -- )
|
||||
"authors.txt" append-path dup exists? [
|
||||
not-scaffolding
|
||||
: scaffold-main ( vocab-root vocab -- )
|
||||
tuck ".factor" vocab-root/vocab/suffix>path scaffolding? [
|
||||
set-scaffold-main-file
|
||||
] [
|
||||
dup scaffolding
|
||||
developer-name get swap utf8 set-file-contents
|
||||
2drop
|
||||
] if ;
|
||||
|
||||
: scaffold-authors ( vocab-root vocab -- )
|
||||
"authors.txt" vocab-root/vocab/file>path scaffolding? [
|
||||
[ developer-name get ] dip utf8 set-file-contents
|
||||
] [
|
||||
drop
|
||||
] if ;
|
||||
|
||||
: lookup-type ( string -- object/string ? )
|
||||
"new" ?head drop [ [ CHAR: ' = ] [ digit? ] bi or ] trim-tail
|
||||
"new" ?head drop [ { [ CHAR: ' = ] [ digit? ] } 1|| ] trim-tail
|
||||
H{
|
||||
{ "object" object } { "obj" object }
|
||||
{ "quot" quotation }
|
||||
|
@ -134,6 +146,9 @@ ERROR: no-vocab vocab ;
|
|||
" }" write
|
||||
] each ;
|
||||
|
||||
: 4bl ( -- )
|
||||
" " write ; inline
|
||||
|
||||
: $values. ( word -- )
|
||||
"declared-effect" word-prop [
|
||||
[ in>> ] [ out>> ] bi
|
||||
|
@ -141,8 +156,8 @@ ERROR: no-vocab vocab ;
|
|||
2drop
|
||||
] [
|
||||
"{ $values" print
|
||||
[ " " write ($values.) ]
|
||||
[ [ nl " " write ($values.) ] unless-empty ] bi*
|
||||
[ 4bl ($values.) ]
|
||||
[ [ nl 4bl ($values.) ] unless-empty ] bi*
|
||||
nl "}" print
|
||||
] if
|
||||
] when* ;
|
||||
|
@ -151,21 +166,21 @@ ERROR: no-vocab vocab ;
|
|||
drop
|
||||
"{ $description \"\" } ;" print ;
|
||||
|
||||
: help-header. ( word -- )
|
||||
: docs-header. ( word -- )
|
||||
"HELP: " write name>> print ;
|
||||
|
||||
: (help.) ( word -- )
|
||||
[ help-header. ] [ $values. ] [ $description. ] tri ;
|
||||
[ docs-header. ] [ $values. ] [ $description. ] tri ;
|
||||
|
||||
: interesting-words ( vocab -- array )
|
||||
words
|
||||
[ [ "help" word-prop ] [ predicate? ] bi or not ] filter
|
||||
[ { [ "help" word-prop ] [ predicate? ] } 1|| not ] filter
|
||||
natural-sort ;
|
||||
|
||||
: interesting-words. ( vocab -- )
|
||||
interesting-words [ (help.) nl ] each ;
|
||||
|
||||
: help-file-string ( vocab -- str2 )
|
||||
: docs-file-string ( vocab -- str2 )
|
||||
[
|
||||
{
|
||||
[ "IN: " write print nl ]
|
||||
|
@ -186,62 +201,68 @@ ERROR: no-vocab vocab ;
|
|||
[ bl write ] each
|
||||
" ;" print ;
|
||||
|
||||
: set-scaffold-help-file ( path vocab -- )
|
||||
swap utf8 <file-writer> [
|
||||
: set-scaffold-docs-file ( vocab path -- )
|
||||
utf8 <file-writer> [
|
||||
scaffold-copyright
|
||||
[ help-file-string ] [ write-using ] bi
|
||||
[ docs-file-string ] [ write-using ] bi
|
||||
write
|
||||
] with-output-stream ;
|
||||
|
||||
: check-scaffold ( vocab-root string -- vocab-root string )
|
||||
[ check-root ] [ check-vocab-name ] bi* ;
|
||||
|
||||
: vocab>scaffold-path ( vocab-root string -- path )
|
||||
path-separator first CHAR: . associate substitute
|
||||
append-path ;
|
||||
|
||||
: prepare-scaffold ( vocab-root string -- string path )
|
||||
check-scaffold [ vocab>scaffold-path ] keep ;
|
||||
|
||||
: with-scaffold ( quot -- )
|
||||
[ H{ } clone using ] dip with-variable ; inline
|
||||
|
||||
: check-vocab ( vocab -- vocab )
|
||||
dup find-vocab-root [ no-vocab ] unless ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: link-vocab ( vocab -- )
|
||||
check-vocab
|
||||
"Edit documentation: " write
|
||||
[ find-vocab-root ]
|
||||
[ vocab>scaffold-path ] bi
|
||||
"-docs.factor" (scaffold-path) <pathname> . ;
|
||||
"-docs.factor" vocab/suffix>path <pathname> . ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: help. ( word -- )
|
||||
[ (help.) ] [ nl vocabulary>> link-vocab ] bi ;
|
||||
|
||||
: scaffold-help ( string -- )
|
||||
: scaffold-help ( vocab -- )
|
||||
[
|
||||
[ find-vocab-root ] [ check-vocab ] bi
|
||||
prepare-scaffold
|
||||
[ "-docs.factor" scaffold-path ] dip
|
||||
swap [ set-scaffold-help-file ] [ 2drop ] if
|
||||
dup "-docs.factor" vocab/suffix>path scaffolding? [
|
||||
set-scaffold-docs-file
|
||||
] [
|
||||
2drop
|
||||
] if
|
||||
] with-scaffold ;
|
||||
|
||||
: scaffold-undocumented ( string -- )
|
||||
[ interesting-words. ] [ link-vocab ] bi ;
|
||||
|
||||
: scaffold-vocab ( vocab-root string -- )
|
||||
prepare-scaffold
|
||||
{
|
||||
[ drop scaffold-directory ]
|
||||
[ scaffold-directory ]
|
||||
[ scaffold-main ]
|
||||
[ scaffold-tests ]
|
||||
[ drop scaffold-authors ]
|
||||
[ scaffold-authors ]
|
||||
[ nip require ]
|
||||
} 2cleave ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: tests-file-string ( vocab -- string )
|
||||
[
|
||||
scaffold-copyright
|
||||
"USING: tools.test " write dup write " ;" print
|
||||
"IN: " write write ".tests" print
|
||||
] with-string-writer ;
|
||||
|
||||
: set-scaffold-tests-file ( vocab path -- )
|
||||
[ tests-file-string ] dip utf8 set-file-contents ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: scaffold-tests ( vocab -- )
|
||||
dup "-tests.factor" vocab/suffix>path
|
||||
scaffolding? [
|
||||
set-scaffold-tests-file
|
||||
] [
|
||||
2drop
|
||||
] if ;
|
||||
|
||||
SYMBOL: examples-flag
|
||||
|
||||
: example ( -- )
|
||||
|
@ -250,7 +271,7 @@ SYMBOL: examples-flag
|
|||
" \"\""
|
||||
" \"\""
|
||||
"}"
|
||||
} [ examples-flag get [ " " write ] when print ] each ;
|
||||
} [ examples-flag get [ 4bl ] when print ] each ;
|
||||
|
||||
: examples ( n -- )
|
||||
t \ examples-flag [
|
||||
|
@ -260,10 +281,11 @@ SYMBOL: examples-flag
|
|||
] with-variable ;
|
||||
|
||||
: scaffold-rc ( path -- )
|
||||
[ home ] dip append-path
|
||||
[ touch-file ] [ "Click to edit: " write <pathname> . ] bi ;
|
||||
|
||||
: scaffold-factor-boot-rc ( -- )
|
||||
home ".factor-boot-rc" append-path scaffold-rc ;
|
||||
: scaffold-factor-boot-rc ( -- ) ".factor-boot-rc" scaffold-rc ;
|
||||
|
||||
: scaffold-factor-rc ( -- )
|
||||
home ".factor-rc" append-path scaffold-rc ;
|
||||
: scaffold-factor-rc ( -- ) ".factor-rc" scaffold-rc ;
|
||||
|
||||
: scaffold-emacs ( -- ) ".emacs" scaffold-rc ;
|
||||
|
|
|
@ -46,7 +46,7 @@ PRIVATE>
|
|||
|
||||
: group-name ( id -- string )
|
||||
dup group-cache get [
|
||||
dupd at* [ name>> nip ] [ drop number>string ] if
|
||||
?at [ name>> ] [ number>string ] if
|
||||
] [
|
||||
group-struct [ group-gr_name ] [ f ] if*
|
||||
] if*
|
||||
|
|
|
@ -6,8 +6,8 @@ cell-bits {
|
|||
{ 64 [ "unix.stat.netbsd.64" require ] }
|
||||
} case
|
||||
|
||||
: _VFS_NAMELEN 32 ; inline
|
||||
: _VFS_MNAMELEN 1024 ; inline
|
||||
CONSTANT: _VFS_NAMELEN 32
|
||||
CONSTANT: _VFS_MNAMELEN 1024
|
||||
|
||||
C-STRUCT: statvfs
|
||||
{ "ulong" "f_flag" }
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: arrays math kernel accessors sequences sequences.private
|
|||
deques search-deques hashtables ;
|
||||
IN: unrolled-lists
|
||||
|
||||
: unroll-factor 32 ; inline
|
||||
CONSTANT: unroll-factor 32
|
||||
|
||||
<PRIVATE
|
||||
|
||||
|
|
|
@ -1226,7 +1226,7 @@ FUNCTION: BOOL GetExitCodeProcess ( HANDLE hProcess, LPDWORD lpExitCode ) ;
|
|||
FUNCTION: DWORD GetFileAttributesW ( LPCTSTR lpFileName ) ;
|
||||
! FUNCTION: GetFileAttributesExA
|
||||
|
||||
: GetFileExInfoStandard 0 ; inline
|
||||
CONSTANT: GetFileExInfoStandard 0
|
||||
|
||||
|
||||
FUNCTION: BOOL GetFileAttributesExW ( LPCTSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation ) ;
|
||||
|
|
|
@ -20,61 +20,61 @@ FUNCTION: BOOL IsEqualGUID ( REFGUID rguid1, REFGUID rguid2 ) ;
|
|||
FUNCTION: int StringFromGUID2 ( REFGUID rguid, LPOLESTR lpsz, int cchMax ) ;
|
||||
FUNCTION: HRESULT CLSIDFromString ( LPOLESTR lpsz, REFGUID out_rguid ) ;
|
||||
|
||||
: S_OK 0 ; inline
|
||||
: S_FALSE 1 ; inline
|
||||
: E_NOINTERFACE HEX: 80004002 ; inline
|
||||
: E_FAIL HEX: 80004005 ; inline
|
||||
: E_INVALIDARG HEX: 80070057 ; inline
|
||||
CONSTANT: S_OK 0
|
||||
CONSTANT: S_FALSE 1
|
||||
CONSTANT: E_NOINTERFACE HEX: 80004002
|
||||
CONSTANT: E_FAIL HEX: 80004005
|
||||
CONSTANT: E_INVALIDARG HEX: 80070057
|
||||
|
||||
: MK_ALT HEX: 20 ; inline
|
||||
: DROPEFFECT_NONE 0 ; inline
|
||||
: DROPEFFECT_COPY 1 ; inline
|
||||
: DROPEFFECT_MOVE 2 ; inline
|
||||
: DROPEFFECT_LINK 4 ; inline
|
||||
: DROPEFFECT_SCROLL HEX: 80000000 ; inline
|
||||
: DD_DEFSCROLLINSET 11 ; inline
|
||||
: DD_DEFSCROLLDELAY 50 ; inline
|
||||
: DD_DEFSCROLLINTERVAL 50 ; inline
|
||||
: DD_DEFDRAGDELAY 200 ; inline
|
||||
: DD_DEFDRAGMINDIST 2 ; inline
|
||||
CONSTANT: MK_ALT HEX: 20
|
||||
CONSTANT: DROPEFFECT_NONE 0
|
||||
CONSTANT: DROPEFFECT_COPY 1
|
||||
CONSTANT: DROPEFFECT_MOVE 2
|
||||
CONSTANT: DROPEFFECT_LINK 4
|
||||
CONSTANT: DROPEFFECT_SCROLL HEX: 80000000
|
||||
CONSTANT: DD_DEFSCROLLINSET 11
|
||||
CONSTANT: DD_DEFSCROLLDELAY 50
|
||||
CONSTANT: DD_DEFSCROLLINTERVAL 50
|
||||
CONSTANT: DD_DEFDRAGDELAY 200
|
||||
CONSTANT: DD_DEFDRAGMINDIST 2
|
||||
|
||||
: CF_TEXT 1 ; inline
|
||||
: CF_BITMAP 2 ; inline
|
||||
: CF_METAFILEPICT 3 ; inline
|
||||
: CF_SYLK 4 ; inline
|
||||
: CF_DIF 5 ; inline
|
||||
: CF_TIFF 6 ; inline
|
||||
: CF_OEMTEXT 7 ; inline
|
||||
: CF_DIB 8 ; inline
|
||||
: CF_PALETTE 9 ; inline
|
||||
: CF_PENDATA 10 ; inline
|
||||
: CF_RIFF 11 ; inline
|
||||
: CF_WAVE 12 ; inline
|
||||
: CF_UNICODETEXT 13 ; inline
|
||||
: CF_ENHMETAFILE 14 ; inline
|
||||
: CF_HDROP 15 ; inline
|
||||
: CF_LOCALE 16 ; inline
|
||||
: CF_MAX 17 ; inline
|
||||
CONSTANT: CF_TEXT 1
|
||||
CONSTANT: CF_BITMAP 2
|
||||
CONSTANT: CF_METAFILEPICT 3
|
||||
CONSTANT: CF_SYLK 4
|
||||
CONSTANT: CF_DIF 5
|
||||
CONSTANT: CF_TIFF 6
|
||||
CONSTANT: CF_OEMTEXT 7
|
||||
CONSTANT: CF_DIB 8
|
||||
CONSTANT: CF_PALETTE 9
|
||||
CONSTANT: CF_PENDATA 10
|
||||
CONSTANT: CF_RIFF 11
|
||||
CONSTANT: CF_WAVE 12
|
||||
CONSTANT: CF_UNICODETEXT 13
|
||||
CONSTANT: CF_ENHMETAFILE 14
|
||||
CONSTANT: CF_HDROP 15
|
||||
CONSTANT: CF_LOCALE 16
|
||||
CONSTANT: CF_MAX 17
|
||||
|
||||
: CF_OWNERDISPLAY HEX: 0080 ; inline
|
||||
: CF_DSPTEXT HEX: 0081 ; inline
|
||||
: CF_DSPBITMAP HEX: 0082 ; inline
|
||||
: CF_DSPMETAFILEPICT HEX: 0083 ; inline
|
||||
: CF_DSPENHMETAFILE HEX: 008E ; inline
|
||||
CONSTANT: CF_OWNERDISPLAY HEX: 0080
|
||||
CONSTANT: CF_DSPTEXT HEX: 0081
|
||||
CONSTANT: CF_DSPBITMAP HEX: 0082
|
||||
CONSTANT: CF_DSPMETAFILEPICT HEX: 0083
|
||||
CONSTANT: CF_DSPENHMETAFILE HEX: 008E
|
||||
|
||||
: DVASPECT_CONTENT 1 ; inline
|
||||
: DVASPECT_THUMBNAIL 2 ; inline
|
||||
: DVASPECT_ICON 4 ; inline
|
||||
: DVASPECT_DOCPRINT 8 ; inline
|
||||
CONSTANT: DVASPECT_CONTENT 1
|
||||
CONSTANT: DVASPECT_THUMBNAIL 2
|
||||
CONSTANT: DVASPECT_ICON 4
|
||||
CONSTANT: DVASPECT_DOCPRINT 8
|
||||
|
||||
: TYMED_HGLOBAL 1 ; inline
|
||||
: TYMED_FILE 2 ; inline
|
||||
: TYMED_ISTREAM 4 ; inline
|
||||
: TYMED_ISTORAGE 8 ; inline
|
||||
: TYMED_GDI 16 ; inline
|
||||
: TYMED_MFPICT 32 ; inline
|
||||
: TYMED_ENHMF 64 ; inline
|
||||
: TYMED_NULL 0 ; inline
|
||||
CONSTANT: TYMED_HGLOBAL 1
|
||||
CONSTANT: TYMED_FILE 2
|
||||
CONSTANT: TYMED_ISTREAM 4
|
||||
CONSTANT: TYMED_ISTORAGE 8
|
||||
CONSTANT: TYMED_GDI 16
|
||||
CONSTANT: TYMED_MFPICT 32
|
||||
CONSTANT: TYMED_ENHMF 64
|
||||
CONSTANT: TYMED_NULL 0
|
||||
|
||||
C-STRUCT: DVTARGETDEVICE
|
||||
{ "DWORD" "tdSize" }
|
||||
|
@ -101,10 +101,10 @@ C-STRUCT: STGMEDIUM
|
|||
{ "LPUNKNOWN" "punkForRelease" } ;
|
||||
TYPEDEF: STGMEDIUM* LPSTGMEDIUM
|
||||
|
||||
: COINIT_MULTITHREADED 0 ; inline
|
||||
: COINIT_APARTMENTTHREADED 2 ; inline
|
||||
: COINIT_DISABLE_OLE1DDE 4 ; inline
|
||||
: COINIT_SPEED_OVER_MEMORY 8 ; inline
|
||||
CONSTANT: COINIT_MULTITHREADED 0
|
||||
CONSTANT: COINIT_APARTMENTTHREADED 2
|
||||
CONSTANT: COINIT_DISABLE_OLE1DDE 4
|
||||
CONSTANT: COINIT_SPEED_OVER_MEMORY 8
|
||||
|
||||
FUNCTION: HRESULT OleInitialize ( void* reserved ) ;
|
||||
FUNCTION: HRESULT CoInitializeEx ( void* reserved, DWORD dwCoInit ) ;
|
||||
|
|
|
@ -6,70 +6,70 @@ sequences libc ;
|
|||
IN: windows.opengl32
|
||||
|
||||
! PIXELFORMATDESCRIPTOR flags
|
||||
: PFD_DOUBLEBUFFER HEX: 00000001 ; inline
|
||||
: PFD_STEREO HEX: 00000002 ; inline
|
||||
: PFD_DRAW_TO_WINDOW HEX: 00000004 ; inline
|
||||
: PFD_DRAW_TO_BITMAP HEX: 00000008 ; inline
|
||||
: PFD_SUPPORT_GDI HEX: 00000010 ; inline
|
||||
: PFD_SUPPORT_OPENGL HEX: 00000020 ; inline
|
||||
: PFD_GENERIC_FORMAT HEX: 00000040 ; inline
|
||||
: PFD_NEED_PALETTE HEX: 00000080 ; inline
|
||||
: PFD_NEED_SYSTEM_PALETTE HEX: 00000100 ; inline
|
||||
: PFD_SWAP_EXCHANGE HEX: 00000200 ; inline
|
||||
: PFD_SWAP_COPY HEX: 00000400 ; inline
|
||||
: PFD_SWAP_LAYER_BUFFERS HEX: 00000800 ; inline
|
||||
: PFD_GENERIC_ACCELERATED HEX: 00001000 ; inline
|
||||
: PFD_SUPPORT_DIRECTDRAW HEX: 00002000 ; inline
|
||||
CONSTANT: PFD_DOUBLEBUFFER HEX: 00000001
|
||||
CONSTANT: PFD_STEREO HEX: 00000002
|
||||
CONSTANT: PFD_DRAW_TO_WINDOW HEX: 00000004
|
||||
CONSTANT: PFD_DRAW_TO_BITMAP HEX: 00000008
|
||||
CONSTANT: PFD_SUPPORT_GDI HEX: 00000010
|
||||
CONSTANT: PFD_SUPPORT_OPENGL HEX: 00000020
|
||||
CONSTANT: PFD_GENERIC_FORMAT HEX: 00000040
|
||||
CONSTANT: PFD_NEED_PALETTE HEX: 00000080
|
||||
CONSTANT: PFD_NEED_SYSTEM_PALETTE HEX: 00000100
|
||||
CONSTANT: PFD_SWAP_EXCHANGE HEX: 00000200
|
||||
CONSTANT: PFD_SWAP_COPY HEX: 00000400
|
||||
CONSTANT: PFD_SWAP_LAYER_BUFFERS HEX: 00000800
|
||||
CONSTANT: PFD_GENERIC_ACCELERATED HEX: 00001000
|
||||
CONSTANT: PFD_SUPPORT_DIRECTDRAW HEX: 00002000
|
||||
|
||||
! PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only
|
||||
: PFD_DEPTH_DONTCARE HEX: 20000000 ; inline
|
||||
: PFD_DOUBLEBUFFER_DONTCARE HEX: 40000000 ; inline
|
||||
: PFD_STEREO_DONTCARE HEX: 80000000 ; inline
|
||||
CONSTANT: PFD_DEPTH_DONTCARE HEX: 20000000
|
||||
CONSTANT: PFD_DOUBLEBUFFER_DONTCARE HEX: 40000000
|
||||
CONSTANT: PFD_STEREO_DONTCARE HEX: 80000000
|
||||
|
||||
! pixel types
|
||||
: PFD_TYPE_RGBA 0 ; inline
|
||||
: PFD_TYPE_COLORINDEX 1 ; inline
|
||||
CONSTANT: PFD_TYPE_RGBA 0
|
||||
CONSTANT: PFD_TYPE_COLORINDEX 1
|
||||
|
||||
! layer types
|
||||
: PFD_MAIN_PLANE 0 ; inline
|
||||
: PFD_OVERLAY_PLANE 1 ; inline
|
||||
: PFD_UNDERLAY_PLANE -1 ; inline
|
||||
CONSTANT: PFD_MAIN_PLANE 0
|
||||
CONSTANT: PFD_OVERLAY_PLANE 1
|
||||
CONSTANT: PFD_UNDERLAY_PLANE -1
|
||||
|
||||
: LPD_TYPE_RGBA 0 ; inline
|
||||
: LPD_TYPE_COLORINDEX 1 ; inline
|
||||
CONSTANT: LPD_TYPE_RGBA 0
|
||||
CONSTANT: LPD_TYPE_COLORINDEX 1
|
||||
|
||||
! wglSwapLayerBuffers flags
|
||||
: WGL_SWAP_MAIN_PLANE HEX: 00000001 ; inline
|
||||
: WGL_SWAP_OVERLAY1 HEX: 00000002 ; inline
|
||||
: WGL_SWAP_OVERLAY2 HEX: 00000004 ; inline
|
||||
: WGL_SWAP_OVERLAY3 HEX: 00000008 ; inline
|
||||
: WGL_SWAP_OVERLAY4 HEX: 00000010 ; inline
|
||||
: WGL_SWAP_OVERLAY5 HEX: 00000020 ; inline
|
||||
: WGL_SWAP_OVERLAY6 HEX: 00000040 ; inline
|
||||
: WGL_SWAP_OVERLAY7 HEX: 00000080 ; inline
|
||||
: WGL_SWAP_OVERLAY8 HEX: 00000100 ; inline
|
||||
: WGL_SWAP_OVERLAY9 HEX: 00000200 ; inline
|
||||
: WGL_SWAP_OVERLAY10 HEX: 00000400 ; inline
|
||||
: WGL_SWAP_OVERLAY11 HEX: 00000800 ; inline
|
||||
: WGL_SWAP_OVERLAY12 HEX: 00001000 ; inline
|
||||
: WGL_SWAP_OVERLAY13 HEX: 00002000 ; inline
|
||||
: WGL_SWAP_OVERLAY14 HEX: 00004000 ; inline
|
||||
: WGL_SWAP_OVERLAY15 HEX: 00008000 ; inline
|
||||
: WGL_SWAP_UNDERLAY1 HEX: 00010000 ; inline
|
||||
: WGL_SWAP_UNDERLAY2 HEX: 00020000 ; inline
|
||||
: WGL_SWAP_UNDERLAY3 HEX: 00040000 ; inline
|
||||
: WGL_SWAP_UNDERLAY4 HEX: 00080000 ; inline
|
||||
: WGL_SWAP_UNDERLAY5 HEX: 00100000 ; inline
|
||||
: WGL_SWAP_UNDERLAY6 HEX: 00200000 ; inline
|
||||
: WGL_SWAP_UNDERLAY7 HEX: 00400000 ; inline
|
||||
: WGL_SWAP_UNDERLAY8 HEX: 00800000 ; inline
|
||||
: WGL_SWAP_UNDERLAY9 HEX: 01000000 ; inline
|
||||
: WGL_SWAP_UNDERLAY10 HEX: 02000000 ; inline
|
||||
: WGL_SWAP_UNDERLAY11 HEX: 04000000 ; inline
|
||||
: WGL_SWAP_UNDERLAY12 HEX: 08000000 ; inline
|
||||
: WGL_SWAP_UNDERLAY13 HEX: 10000000 ; inline
|
||||
: WGL_SWAP_UNDERLAY14 HEX: 20000000 ; inline
|
||||
: WGL_SWAP_UNDERLAY15 HEX: 40000000 ; inline
|
||||
CONSTANT: WGL_SWAP_MAIN_PLANE HEX: 00000001
|
||||
CONSTANT: WGL_SWAP_OVERLAY1 HEX: 00000002
|
||||
CONSTANT: WGL_SWAP_OVERLAY2 HEX: 00000004
|
||||
CONSTANT: WGL_SWAP_OVERLAY3 HEX: 00000008
|
||||
CONSTANT: WGL_SWAP_OVERLAY4 HEX: 00000010
|
||||
CONSTANT: WGL_SWAP_OVERLAY5 HEX: 00000020
|
||||
CONSTANT: WGL_SWAP_OVERLAY6 HEX: 00000040
|
||||
CONSTANT: WGL_SWAP_OVERLAY7 HEX: 00000080
|
||||
CONSTANT: WGL_SWAP_OVERLAY8 HEX: 00000100
|
||||
CONSTANT: WGL_SWAP_OVERLAY9 HEX: 00000200
|
||||
CONSTANT: WGL_SWAP_OVERLAY10 HEX: 00000400
|
||||
CONSTANT: WGL_SWAP_OVERLAY11 HEX: 00000800
|
||||
CONSTANT: WGL_SWAP_OVERLAY12 HEX: 00001000
|
||||
CONSTANT: WGL_SWAP_OVERLAY13 HEX: 00002000
|
||||
CONSTANT: WGL_SWAP_OVERLAY14 HEX: 00004000
|
||||
CONSTANT: WGL_SWAP_OVERLAY15 HEX: 00008000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY1 HEX: 00010000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY2 HEX: 00020000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY3 HEX: 00040000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY4 HEX: 00080000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY5 HEX: 00100000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY6 HEX: 00200000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY7 HEX: 00400000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY8 HEX: 00800000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY9 HEX: 01000000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY10 HEX: 02000000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY11 HEX: 04000000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY12 HEX: 08000000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY13 HEX: 10000000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY14 HEX: 20000000
|
||||
CONSTANT: WGL_SWAP_UNDERLAY15 HEX: 40000000
|
||||
|
||||
: windowed-pfd-dwFlags ( -- n )
|
||||
{ PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL PFD_DOUBLEBUFFER } flags ;
|
||||
|
|
|
@ -190,9 +190,9 @@ TYPEDEF: ITEMIDLIST ITEMID_CHILD
|
|||
TYPEDEF: ITEMID_CHILD* PITEMID_CHILD
|
||||
TYPEDEF: ITEMID_CHILD* PCUITEMID_CHILD
|
||||
|
||||
: STRRET_WSTR 0 ; inline
|
||||
: STRRET_OFFSET 1 ; inline
|
||||
: STRRET_CSTR 2 ; inline
|
||||
CONSTANT: STRRET_WSTR 0
|
||||
CONSTANT: STRRET_OFFSET 1
|
||||
CONSTANT: STRRET_CSTR 2
|
||||
|
||||
C-UNION: STRRET-union "LPWSTR" "LPSTR" "UINT" "char[260]" ;
|
||||
C-STRUCT: STRRET
|
||||
|
|
|
@ -205,10 +205,10 @@ TYPEDEF: size_t socklen_t
|
|||
|
||||
TYPEDEF: void* WNDPROC
|
||||
|
||||
: FALSE 0 ; inline
|
||||
: TRUE 1 ; inline
|
||||
CONSTANT: FALSE 0
|
||||
CONSTANT: TRUE 1
|
||||
|
||||
: >BOOLEAN ( ? -- 1/0 ) 1 0 ? ; inline
|
||||
: >BOOLEAN ( ? -- 1/0 ) TRUE FALSE ? ; inline
|
||||
|
||||
! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
|
|
|
@ -150,377 +150,377 @@ CONSTANT: PM_NOYIELD 2
|
|||
!
|
||||
! Standard Cursor IDs
|
||||
!
|
||||
: IDC_ARROW 32512 ; inline
|
||||
: IDC_IBEAM 32513 ; inline
|
||||
: IDC_WAIT 32514 ; inline
|
||||
: IDC_CROSS 32515 ; inline
|
||||
: IDC_UPARROW 32516 ; inline
|
||||
: IDC_SIZE 32640 ; inline ! OBSOLETE: use IDC_SIZEALL
|
||||
: IDC_ICON 32641 ; inline ! OBSOLETE: use IDC_ARROW
|
||||
: IDC_SIZENWSE 32642 ; inline
|
||||
: IDC_SIZENESW 32643 ; inline
|
||||
: IDC_SIZEWE 32644 ; inline
|
||||
: IDC_SIZENS 32645 ; inline
|
||||
: IDC_SIZEALL 32646 ; inline
|
||||
: IDC_NO 32648 ; inline ! not in win3.1
|
||||
: IDC_HAND 32649 ; inline
|
||||
: IDC_APPSTARTING 32650 ; inline ! not in win3.1
|
||||
: IDC_HELP 32651 ; inline
|
||||
CONSTANT: IDC_ARROW 32512
|
||||
CONSTANT: IDC_IBEAM 32513
|
||||
CONSTANT: IDC_WAIT 32514
|
||||
CONSTANT: IDC_CROSS 32515
|
||||
CONSTANT: IDC_UPARROW 32516
|
||||
CONSTANT: IDC_SIZE 32640 ! OBSOLETE: use IDC_SIZEALL
|
||||
CONSTANT: IDC_ICON 32641 ! OBSOLETE: use IDC_ARROW
|
||||
CONSTANT: IDC_SIZENWSE 32642
|
||||
CONSTANT: IDC_SIZENESW 32643
|
||||
CONSTANT: IDC_SIZEWE 32644
|
||||
CONSTANT: IDC_SIZENS 32645
|
||||
CONSTANT: IDC_SIZEALL 32646
|
||||
CONSTANT: IDC_NO 32648 ! not in win3.1
|
||||
CONSTANT: IDC_HAND 32649
|
||||
CONSTANT: IDC_APPSTARTING 32650 ! not in win3.1
|
||||
CONSTANT: IDC_HELP 32651
|
||||
|
||||
! Predefined Clipboard Formats
|
||||
: CF_TEXT 1 ; inline
|
||||
: CF_BITMAP 2 ; inline
|
||||
: CF_METAFILEPICT 3 ; inline
|
||||
: CF_SYLK 4 ; inline
|
||||
: CF_DIF 5 ; inline
|
||||
: CF_TIFF 6 ; inline
|
||||
: CF_OEMTEXT 7 ; inline
|
||||
: CF_DIB 8 ; inline
|
||||
: CF_PALETTE 9 ; inline
|
||||
: CF_PENDATA 10 ; inline
|
||||
: CF_RIFF 11 ; inline
|
||||
: CF_WAVE 12 ; inline
|
||||
: CF_UNICODETEXT 13 ; inline
|
||||
: CF_ENHMETAFILE 14 ; inline
|
||||
: CF_HDROP 15 ; inline
|
||||
: CF_LOCALE 16 ; inline
|
||||
: CF_DIBV5 17 ; inline
|
||||
: CF_MAX 18 ; inline
|
||||
CONSTANT: CF_TEXT 1
|
||||
CONSTANT: CF_BITMAP 2
|
||||
CONSTANT: CF_METAFILEPICT 3
|
||||
CONSTANT: CF_SYLK 4
|
||||
CONSTANT: CF_DIF 5
|
||||
CONSTANT: CF_TIFF 6
|
||||
CONSTANT: CF_OEMTEXT 7
|
||||
CONSTANT: CF_DIB 8
|
||||
CONSTANT: CF_PALETTE 9
|
||||
CONSTANT: CF_PENDATA 10
|
||||
CONSTANT: CF_RIFF 11
|
||||
CONSTANT: CF_WAVE 12
|
||||
CONSTANT: CF_UNICODETEXT 13
|
||||
CONSTANT: CF_ENHMETAFILE 14
|
||||
CONSTANT: CF_HDROP 15
|
||||
CONSTANT: CF_LOCALE 16
|
||||
CONSTANT: CF_DIBV5 17
|
||||
CONSTANT: CF_MAX 18
|
||||
|
||||
: CF_OWNERDISPLAY HEX: 0080 ; inline
|
||||
: CF_DSPTEXT HEX: 0081 ; inline
|
||||
: CF_DSPBITMAP HEX: 0082 ; inline
|
||||
: CF_DSPMETAFILEPICT HEX: 0083 ; inline
|
||||
: CF_DSPENHMETAFILE HEX: 008E ; inline
|
||||
CONSTANT: CF_OWNERDISPLAY HEX: 0080
|
||||
CONSTANT: CF_DSPTEXT HEX: 0081
|
||||
CONSTANT: CF_DSPBITMAP HEX: 0082
|
||||
CONSTANT: CF_DSPMETAFILEPICT HEX: 0083
|
||||
CONSTANT: CF_DSPENHMETAFILE HEX: 008E
|
||||
|
||||
! "Private" formats don't get GlobalFree()'d
|
||||
: CF_PRIVATEFIRST HEX: 200 ; inline
|
||||
: CF_PRIVATELAST HEX: 2FF ; inline
|
||||
CONSTANT: CF_PRIVATEFIRST HEX: 200
|
||||
CONSTANT: CF_PRIVATELAST HEX: 2FF
|
||||
|
||||
! "GDIOBJ" formats do get DeleteObject()'d
|
||||
: CF_GDIOBJFIRST HEX: 300 ; inline
|
||||
: CF_GDIOBJLAST HEX: 3FF ; inline
|
||||
CONSTANT: CF_GDIOBJFIRST HEX: 300
|
||||
CONSTANT: CF_GDIOBJLAST HEX: 3FF
|
||||
|
||||
! Virtual Keys, Standard Set
|
||||
: VK_LBUTTON HEX: 01 ; inline
|
||||
: VK_RBUTTON HEX: 02 ; inline
|
||||
: VK_CANCEL HEX: 03 ; inline
|
||||
: VK_MBUTTON HEX: 04 ; inline ! NOT contiguous with L & RBUTTON
|
||||
: VK_XBUTTON1 HEX: 05 ; inline ! NOT contiguous with L & RBUTTON
|
||||
: VK_XBUTTON2 HEX: 06 ; inline ! NOT contiguous with L & RBUTTON
|
||||
CONSTANT: VK_LBUTTON HEX: 01
|
||||
CONSTANT: VK_RBUTTON HEX: 02
|
||||
CONSTANT: VK_CANCEL HEX: 03
|
||||
CONSTANT: VK_MBUTTON HEX: 04 ! NOT contiguous with L & RBUTTON
|
||||
CONSTANT: VK_XBUTTON1 HEX: 05 ! NOT contiguous with L & RBUTTON
|
||||
CONSTANT: VK_XBUTTON2 HEX: 06 ! NOT contiguous with L & RBUTTON
|
||||
! 0x07 : unassigned
|
||||
: VK_BACK HEX: 08 ; inline
|
||||
: VK_TAB HEX: 09 ; inline
|
||||
CONSTANT: VK_BACK HEX: 08
|
||||
CONSTANT: VK_TAB HEX: 09
|
||||
! 0x0A - 0x0B : reserved
|
||||
|
||||
: VK_CLEAR HEX: 0C ; inline
|
||||
: VK_RETURN HEX: 0D ; inline
|
||||
CONSTANT: VK_CLEAR HEX: 0C
|
||||
CONSTANT: VK_RETURN HEX: 0D
|
||||
|
||||
: VK_SHIFT HEX: 10 ; inline
|
||||
: VK_CONTROL HEX: 11 ; inline
|
||||
: VK_MENU HEX: 12 ; inline
|
||||
: VK_PAUSE HEX: 13 ; inline
|
||||
: VK_CAPITAL HEX: 14 ; inline
|
||||
CONSTANT: VK_SHIFT HEX: 10
|
||||
CONSTANT: VK_CONTROL HEX: 11
|
||||
CONSTANT: VK_MENU HEX: 12
|
||||
CONSTANT: VK_PAUSE HEX: 13
|
||||
CONSTANT: VK_CAPITAL HEX: 14
|
||||
|
||||
: VK_KANA HEX: 15 ; inline
|
||||
: VK_HANGEUL HEX: 15 ; inline ! old name - here for compatibility
|
||||
: VK_HANGUL HEX: 15 ; inline
|
||||
: VK_JUNJA HEX: 17 ; inline
|
||||
: VK_FINAL HEX: 18 ; inline
|
||||
: VK_HANJA HEX: 19 ; inline
|
||||
: VK_KANJI HEX: 19 ; inline
|
||||
CONSTANT: VK_KANA HEX: 15
|
||||
CONSTANT: VK_HANGEUL HEX: 15 ! old name - here for compatibility
|
||||
CONSTANT: VK_HANGUL HEX: 15
|
||||
CONSTANT: VK_JUNJA HEX: 17
|
||||
CONSTANT: VK_FINAL HEX: 18
|
||||
CONSTANT: VK_HANJA HEX: 19
|
||||
CONSTANT: VK_KANJI HEX: 19
|
||||
|
||||
: VK_ESCAPE HEX: 1B ; inline
|
||||
CONSTANT: VK_ESCAPE HEX: 1B
|
||||
|
||||
: VK_CONVERT HEX: 1C ; inline
|
||||
: VK_NONCONVERT HEX: 1D ; inline
|
||||
: VK_ACCEPT HEX: 1E ; inline
|
||||
: VK_MODECHANGE HEX: 1F ; inline
|
||||
CONSTANT: VK_CONVERT HEX: 1C
|
||||
CONSTANT: VK_NONCONVERT HEX: 1D
|
||||
CONSTANT: VK_ACCEPT HEX: 1E
|
||||
CONSTANT: VK_MODECHANGE HEX: 1F
|
||||
|
||||
: VK_SPACE HEX: 20 ; inline
|
||||
: VK_PRIOR HEX: 21 ; inline
|
||||
: VK_NEXT HEX: 22 ; inline
|
||||
: VK_END HEX: 23 ; inline
|
||||
: VK_HOME HEX: 24 ; inline
|
||||
: VK_LEFT HEX: 25 ; inline
|
||||
: VK_UP HEX: 26 ; inline
|
||||
: VK_RIGHT HEX: 27 ; inline
|
||||
: VK_DOWN HEX: 28 ; inline
|
||||
: VK_SELECT HEX: 29 ; inline
|
||||
: VK_PRINT HEX: 2A ; inline
|
||||
: VK_EXECUTE HEX: 2B ; inline
|
||||
: VK_SNAPSHOT HEX: 2C ; inline
|
||||
: VK_INSERT HEX: 2D ; inline
|
||||
: VK_DELETE HEX: 2E ; inline
|
||||
: VK_HELP HEX: 2F ; inline
|
||||
CONSTANT: VK_SPACE HEX: 20
|
||||
CONSTANT: VK_PRIOR HEX: 21
|
||||
CONSTANT: VK_NEXT HEX: 22
|
||||
CONSTANT: VK_END HEX: 23
|
||||
CONSTANT: VK_HOME HEX: 24
|
||||
CONSTANT: VK_LEFT HEX: 25
|
||||
CONSTANT: VK_UP HEX: 26
|
||||
CONSTANT: VK_RIGHT HEX: 27
|
||||
CONSTANT: VK_DOWN HEX: 28
|
||||
CONSTANT: VK_SELECT HEX: 29
|
||||
CONSTANT: VK_PRINT HEX: 2A
|
||||
CONSTANT: VK_EXECUTE HEX: 2B
|
||||
CONSTANT: VK_SNAPSHOT HEX: 2C
|
||||
CONSTANT: VK_INSERT HEX: 2D
|
||||
CONSTANT: VK_DELETE HEX: 2E
|
||||
CONSTANT: VK_HELP HEX: 2F
|
||||
|
||||
: VK_0 CHAR: 0 ; inline
|
||||
: VK_1 CHAR: 1 ; inline
|
||||
: VK_2 CHAR: 2 ; inline
|
||||
: VK_3 CHAR: 3 ; inline
|
||||
: VK_4 CHAR: 4 ; inline
|
||||
: VK_5 CHAR: 5 ; inline
|
||||
: VK_6 CHAR: 6 ; inline
|
||||
: VK_7 CHAR: 7 ; inline
|
||||
: VK_8 CHAR: 8 ; inline
|
||||
: VK_9 CHAR: 9 ; inline
|
||||
CONSTANT: VK_0 CHAR: 0
|
||||
CONSTANT: VK_1 CHAR: 1
|
||||
CONSTANT: VK_2 CHAR: 2
|
||||
CONSTANT: VK_3 CHAR: 3
|
||||
CONSTANT: VK_4 CHAR: 4
|
||||
CONSTANT: VK_5 CHAR: 5
|
||||
CONSTANT: VK_6 CHAR: 6
|
||||
CONSTANT: VK_7 CHAR: 7
|
||||
CONSTANT: VK_8 CHAR: 8
|
||||
CONSTANT: VK_9 CHAR: 9
|
||||
|
||||
: VK_A CHAR: A ; inline
|
||||
: VK_B CHAR: B ; inline
|
||||
: VK_C CHAR: C ; inline
|
||||
: VK_D CHAR: D ; inline
|
||||
: VK_E CHAR: E ; inline
|
||||
: VK_F CHAR: F ; inline
|
||||
: VK_G CHAR: G ; inline
|
||||
: VK_H CHAR: H ; inline
|
||||
: VK_I CHAR: I ; inline
|
||||
: VK_J CHAR: J ; inline
|
||||
: VK_K CHAR: K ; inline
|
||||
: VK_L CHAR: L ; inline
|
||||
: VK_M CHAR: M ; inline
|
||||
: VK_N CHAR: N ; inline
|
||||
: VK_O CHAR: O ; inline
|
||||
: VK_P CHAR: P ; inline
|
||||
: VK_Q CHAR: Q ; inline
|
||||
: VK_R CHAR: R ; inline
|
||||
: VK_S CHAR: S ; inline
|
||||
: VK_T CHAR: T ; inline
|
||||
: VK_U CHAR: U ; inline
|
||||
: VK_V CHAR: V ; inline
|
||||
: VK_W CHAR: W ; inline
|
||||
: VK_X CHAR: X ; inline
|
||||
: VK_Y CHAR: Y ; inline
|
||||
: VK_Z CHAR: Z ; inline
|
||||
CONSTANT: VK_A CHAR: A
|
||||
CONSTANT: VK_B CHAR: B
|
||||
CONSTANT: VK_C CHAR: C
|
||||
CONSTANT: VK_D CHAR: D
|
||||
CONSTANT: VK_E CHAR: E
|
||||
CONSTANT: VK_F CHAR: F
|
||||
CONSTANT: VK_G CHAR: G
|
||||
CONSTANT: VK_H CHAR: H
|
||||
CONSTANT: VK_I CHAR: I
|
||||
CONSTANT: VK_J CHAR: J
|
||||
CONSTANT: VK_K CHAR: K
|
||||
CONSTANT: VK_L CHAR: L
|
||||
CONSTANT: VK_M CHAR: M
|
||||
CONSTANT: VK_N CHAR: N
|
||||
CONSTANT: VK_O CHAR: O
|
||||
CONSTANT: VK_P CHAR: P
|
||||
CONSTANT: VK_Q CHAR: Q
|
||||
CONSTANT: VK_R CHAR: R
|
||||
CONSTANT: VK_S CHAR: S
|
||||
CONSTANT: VK_T CHAR: T
|
||||
CONSTANT: VK_U CHAR: U
|
||||
CONSTANT: VK_V CHAR: V
|
||||
CONSTANT: VK_W CHAR: W
|
||||
CONSTANT: VK_X CHAR: X
|
||||
CONSTANT: VK_Y CHAR: Y
|
||||
CONSTANT: VK_Z CHAR: Z
|
||||
|
||||
: VK_LWIN HEX: 5B ; inline
|
||||
: VK_RWIN HEX: 5C ; inline
|
||||
: VK_APPS HEX: 5D ; inline
|
||||
CONSTANT: VK_LWIN HEX: 5B
|
||||
CONSTANT: VK_RWIN HEX: 5C
|
||||
CONSTANT: VK_APPS HEX: 5D
|
||||
|
||||
! 0x5E : reserved
|
||||
|
||||
: VK_SLEEP HEX: 5F ; inline
|
||||
CONSTANT: VK_SLEEP HEX: 5F
|
||||
|
||||
: VK_NUMPAD0 HEX: 60 ; inline
|
||||
: VK_NUMPAD1 HEX: 61 ; inline
|
||||
: VK_NUMPAD2 HEX: 62 ; inline
|
||||
: VK_NUMPAD3 HEX: 63 ; inline
|
||||
: VK_NUMPAD4 HEX: 64 ; inline
|
||||
: VK_NUMPAD5 HEX: 65 ; inline
|
||||
: VK_NUMPAD6 HEX: 66 ; inline
|
||||
: VK_NUMPAD7 HEX: 67 ; inline
|
||||
: VK_NUMPAD8 HEX: 68 ; inline
|
||||
: VK_NUMPAD9 HEX: 69 ; inline
|
||||
: VK_MULTIPLY HEX: 6A ; inline
|
||||
: VK_ADD HEX: 6B ; inline
|
||||
: VK_SEPARATOR HEX: 6C ; inline
|
||||
: VK_SUBTRACT HEX: 6D ; inline
|
||||
: VK_DECIMAL HEX: 6E ; inline
|
||||
: VK_DIVIDE HEX: 6F ; inline
|
||||
: VK_F1 HEX: 70 ; inline
|
||||
: VK_F2 HEX: 71 ; inline
|
||||
: VK_F3 HEX: 72 ; inline
|
||||
: VK_F4 HEX: 73 ; inline
|
||||
: VK_F5 HEX: 74 ; inline
|
||||
: VK_F6 HEX: 75 ; inline
|
||||
: VK_F7 HEX: 76 ; inline
|
||||
: VK_F8 HEX: 77 ; inline
|
||||
: VK_F9 HEX: 78 ; inline
|
||||
: VK_F10 HEX: 79 ; inline
|
||||
: VK_F11 HEX: 7A ; inline
|
||||
: VK_F12 HEX: 7B ; inline
|
||||
: VK_F13 HEX: 7C ; inline
|
||||
: VK_F14 HEX: 7D ; inline
|
||||
: VK_F15 HEX: 7E ; inline
|
||||
: VK_F16 HEX: 7F ; inline
|
||||
: VK_F17 HEX: 80 ; inline
|
||||
: VK_F18 HEX: 81 ; inline
|
||||
: VK_F19 HEX: 82 ; inline
|
||||
: VK_F20 HEX: 83 ; inline
|
||||
: VK_F21 HEX: 84 ; inline
|
||||
: VK_F22 HEX: 85 ; inline
|
||||
: VK_F23 HEX: 86 ; inline
|
||||
: VK_F24 HEX: 87 ; inline
|
||||
CONSTANT: VK_NUMPAD0 HEX: 60
|
||||
CONSTANT: VK_NUMPAD1 HEX: 61
|
||||
CONSTANT: VK_NUMPAD2 HEX: 62
|
||||
CONSTANT: VK_NUMPAD3 HEX: 63
|
||||
CONSTANT: VK_NUMPAD4 HEX: 64
|
||||
CONSTANT: VK_NUMPAD5 HEX: 65
|
||||
CONSTANT: VK_NUMPAD6 HEX: 66
|
||||
CONSTANT: VK_NUMPAD7 HEX: 67
|
||||
CONSTANT: VK_NUMPAD8 HEX: 68
|
||||
CONSTANT: VK_NUMPAD9 HEX: 69
|
||||
CONSTANT: VK_MULTIPLY HEX: 6A
|
||||
CONSTANT: VK_ADD HEX: 6B
|
||||
CONSTANT: VK_SEPARATOR HEX: 6C
|
||||
CONSTANT: VK_SUBTRACT HEX: 6D
|
||||
CONSTANT: VK_DECIMAL HEX: 6E
|
||||
CONSTANT: VK_DIVIDE HEX: 6F
|
||||
CONSTANT: VK_F1 HEX: 70
|
||||
CONSTANT: VK_F2 HEX: 71
|
||||
CONSTANT: VK_F3 HEX: 72
|
||||
CONSTANT: VK_F4 HEX: 73
|
||||
CONSTANT: VK_F5 HEX: 74
|
||||
CONSTANT: VK_F6 HEX: 75
|
||||
CONSTANT: VK_F7 HEX: 76
|
||||
CONSTANT: VK_F8 HEX: 77
|
||||
CONSTANT: VK_F9 HEX: 78
|
||||
CONSTANT: VK_F10 HEX: 79
|
||||
CONSTANT: VK_F11 HEX: 7A
|
||||
CONSTANT: VK_F12 HEX: 7B
|
||||
CONSTANT: VK_F13 HEX: 7C
|
||||
CONSTANT: VK_F14 HEX: 7D
|
||||
CONSTANT: VK_F15 HEX: 7E
|
||||
CONSTANT: VK_F16 HEX: 7F
|
||||
CONSTANT: VK_F17 HEX: 80
|
||||
CONSTANT: VK_F18 HEX: 81
|
||||
CONSTANT: VK_F19 HEX: 82
|
||||
CONSTANT: VK_F20 HEX: 83
|
||||
CONSTANT: VK_F21 HEX: 84
|
||||
CONSTANT: VK_F22 HEX: 85
|
||||
CONSTANT: VK_F23 HEX: 86
|
||||
CONSTANT: VK_F24 HEX: 87
|
||||
|
||||
! 0x88 - 0x8F : unassigned
|
||||
|
||||
: VK_NUMLOCK HEX: 90 ; inline
|
||||
: VK_SCROLL HEX: 91 ; inline
|
||||
CONSTANT: VK_NUMLOCK HEX: 90
|
||||
CONSTANT: VK_SCROLL HEX: 91
|
||||
|
||||
! NEC PC-9800 kbd definitions
|
||||
: VK_OEM_NEC_EQUAL HEX: 92 ; inline ! '=' key on numpad
|
||||
CONSTANT: VK_OEM_NEC_EQUAL HEX: 92 ! '=' key on numpad
|
||||
|
||||
! Fujitsu/OASYS kbd definitions
|
||||
: VK_OEM_FJ_JISHO HEX: 92 ; inline ! 'Dictionary' key
|
||||
: VK_OEM_FJ_MASSHOU HEX: 93 ; inline ! 'Unregister word' key
|
||||
: VK_OEM_FJ_TOUROKU HEX: 94 ; inline ! 'Register word' key
|
||||
: VK_OEM_FJ_LOYA HEX: 95 ; inline ! 'Left OYAYUBI' key
|
||||
: VK_OEM_FJ_ROYA HEX: 96 ; inline ! 'Right OYAYUBI' key
|
||||
CONSTANT: VK_OEM_FJ_JISHO HEX: 92 ! 'Dictionary' key
|
||||
CONSTANT: VK_OEM_FJ_MASSHOU HEX: 93 ! 'Unregister word' key
|
||||
CONSTANT: VK_OEM_FJ_TOUROKU HEX: 94 ! 'Register word' key
|
||||
CONSTANT: VK_OEM_FJ_LOYA HEX: 95 ! 'Left OYAYUBI' key
|
||||
CONSTANT: VK_OEM_FJ_ROYA HEX: 96 ! 'Right OYAYUBI' key
|
||||
|
||||
! 0x97 - 0x9F : unassigned
|
||||
|
||||
! VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
|
||||
! Used only as parameters to GetAsyncKeyState() and GetKeyState().
|
||||
! No other API or message will distinguish left and right keys in this way.
|
||||
: VK_LSHIFT HEX: A0 ; inline
|
||||
: VK_RSHIFT HEX: A1 ; inline
|
||||
: VK_LCONTROL HEX: A2 ; inline
|
||||
: VK_RCONTROL HEX: A3 ; inline
|
||||
: VK_LMENU HEX: A4 ; inline
|
||||
: VK_RMENU HEX: A5 ; inline
|
||||
CONSTANT: VK_LSHIFT HEX: A0
|
||||
CONSTANT: VK_RSHIFT HEX: A1
|
||||
CONSTANT: VK_LCONTROL HEX: A2
|
||||
CONSTANT: VK_RCONTROL HEX: A3
|
||||
CONSTANT: VK_LMENU HEX: A4
|
||||
CONSTANT: VK_RMENU HEX: A5
|
||||
|
||||
: VK_BROWSER_BACK HEX: A6 ; inline
|
||||
: VK_BROWSER_FORWARD HEX: A7 ; inline
|
||||
: VK_BROWSER_REFRESH HEX: A8 ; inline
|
||||
: VK_BROWSER_STOP HEX: A9 ; inline
|
||||
: VK_BROWSER_SEARCH HEX: AA ; inline
|
||||
: VK_BROWSER_FAVORITES HEX: AB ; inline
|
||||
: VK_BROWSER_HOME HEX: AC ; inline
|
||||
CONSTANT: VK_BROWSER_BACK HEX: A6
|
||||
CONSTANT: VK_BROWSER_FORWARD HEX: A7
|
||||
CONSTANT: VK_BROWSER_REFRESH HEX: A8
|
||||
CONSTANT: VK_BROWSER_STOP HEX: A9
|
||||
CONSTANT: VK_BROWSER_SEARCH HEX: AA
|
||||
CONSTANT: VK_BROWSER_FAVORITES HEX: AB
|
||||
CONSTANT: VK_BROWSER_HOME HEX: AC
|
||||
|
||||
: VK_VOLUME_MUTE HEX: AD ; inline
|
||||
: VK_VOLUME_DOWN HEX: AE ; inline
|
||||
: VK_VOLUME_UP HEX: AF ; inline
|
||||
: VK_MEDIA_NEXT_TRACK HEX: B0 ; inline
|
||||
: VK_MEDIA_PREV_TRACK HEX: B1 ; inline
|
||||
: VK_MEDIA_STOP HEX: B2 ; inline
|
||||
: VK_MEDIA_PLAY_PAUSE HEX: B3 ; inline
|
||||
: VK_LAUNCH_MAIL HEX: B4 ; inline
|
||||
: VK_LAUNCH_MEDIA_SELECT HEX: B5 ; inline
|
||||
: VK_LAUNCH_APP1 HEX: B6 ; inline
|
||||
: VK_LAUNCH_APP2 HEX: B7 ; inline
|
||||
CONSTANT: VK_VOLUME_MUTE HEX: AD
|
||||
CONSTANT: VK_VOLUME_DOWN HEX: AE
|
||||
CONSTANT: VK_VOLUME_UP HEX: AF
|
||||
CONSTANT: VK_MEDIA_NEXT_TRACK HEX: B0
|
||||
CONSTANT: VK_MEDIA_PREV_TRACK HEX: B1
|
||||
CONSTANT: VK_MEDIA_STOP HEX: B2
|
||||
CONSTANT: VK_MEDIA_PLAY_PAUSE HEX: B3
|
||||
CONSTANT: VK_LAUNCH_MAIL HEX: B4
|
||||
CONSTANT: VK_LAUNCH_MEDIA_SELECT HEX: B5
|
||||
CONSTANT: VK_LAUNCH_APP1 HEX: B6
|
||||
CONSTANT: VK_LAUNCH_APP2 HEX: B7
|
||||
|
||||
! 0xB8 - 0xB9 : reserved
|
||||
|
||||
: VK_OEM_1 HEX: BA ; inline ! ';:' for US
|
||||
: VK_OEM_PLUS HEX: BB ; inline ! '+' any country
|
||||
: VK_OEM_COMMA HEX: BC ; inline ! ',' any country
|
||||
: VK_OEM_MINUS HEX: BD ; inline ! '-' any country
|
||||
: VK_OEM_PERIOD HEX: BE ; inline ! '.' any country
|
||||
: VK_OEM_2 HEX: BF ; inline ! '/?' for US
|
||||
: VK_OEM_3 HEX: C0 ; inline ! '`~' for US
|
||||
CONSTANT: VK_OEM_1 HEX: BA ! ';:' for US
|
||||
CONSTANT: VK_OEM_PLUS HEX: BB ! '+' any country
|
||||
CONSTANT: VK_OEM_COMMA HEX: BC ! ',' any country
|
||||
CONSTANT: VK_OEM_MINUS HEX: BD ! '-' any country
|
||||
CONSTANT: VK_OEM_PERIOD HEX: BE ! '.' any country
|
||||
CONSTANT: VK_OEM_2 HEX: BF ! '/?' for US
|
||||
CONSTANT: VK_OEM_3 HEX: C0 ! '`~' for US
|
||||
|
||||
! 0xC1 - 0xD7 : reserved
|
||||
|
||||
! 0xD8 - 0xDA : unassigned
|
||||
|
||||
: VK_OEM_4 HEX: DB ; inline ! '[{' for US
|
||||
: VK_OEM_5 HEX: DC ; inline ! '\|' for US
|
||||
: VK_OEM_6 HEX: DD ; inline ! ']}' for US
|
||||
: VK_OEM_7 HEX: DE ; inline ! ''"' for US
|
||||
: VK_OEM_8 HEX: DF ; inline
|
||||
CONSTANT: VK_OEM_4 HEX: DB ! '[{' for US
|
||||
CONSTANT: VK_OEM_5 HEX: DC ! '\|' for US
|
||||
CONSTANT: VK_OEM_6 HEX: DD ! ']}' for US
|
||||
CONSTANT: VK_OEM_7 HEX: DE ! ''"' for US
|
||||
CONSTANT: VK_OEM_8 HEX: DF
|
||||
|
||||
! 0xE0 : reserved
|
||||
|
||||
! Various extended or enhanced keyboards
|
||||
: VK_OEM_AX HEX: E1 ; inline ! 'AX' key on Japanese AX kbd
|
||||
: VK_OEM_102 HEX: E2 ; inline ! "<>" or "\|" on RT 102-key kbd.
|
||||
: VK_ICO_HELP HEX: E3 ; inline ! Help key on ICO
|
||||
: VK_ICO_00 HEX: E4 ; inline ! 00 key on ICO
|
||||
CONSTANT: VK_OEM_AX HEX: E1 ! 'AX' key on Japanese AX kbd
|
||||
CONSTANT: VK_OEM_102 HEX: E2 ! "<>" or "\|" on RT 102-key kbd.
|
||||
CONSTANT: VK_ICO_HELP HEX: E3 ! Help key on ICO
|
||||
CONSTANT: VK_ICO_00 HEX: E4 ! 00 key on ICO
|
||||
|
||||
: VK_PROCESSKEY HEX: E5 ; inline
|
||||
CONSTANT: VK_PROCESSKEY HEX: E5
|
||||
|
||||
: VK_ICO_CLEAR HEX: E6 ; inline
|
||||
CONSTANT: VK_ICO_CLEAR HEX: E6
|
||||
|
||||
: VK_PACKET HEX: E7 ; inline
|
||||
CONSTANT: VK_PACKET HEX: E7
|
||||
|
||||
! 0xE8 : unassigned
|
||||
|
||||
! Nokia/Ericsson definitions
|
||||
: VK_OEM_RESET HEX: E9 ; inline
|
||||
: VK_OEM_JUMP HEX: EA ; inline
|
||||
: VK_OEM_PA1 HEX: EB ; inline
|
||||
: VK_OEM_PA2 HEX: EC ; inline
|
||||
: VK_OEM_PA3 HEX: ED ; inline
|
||||
: VK_OEM_WSCTRL HEX: EE ; inline
|
||||
: VK_OEM_CUSEL HEX: EF ; inline
|
||||
: VK_OEM_ATTN HEX: F0 ; inline
|
||||
: VK_OEM_FINISH HEX: F1 ; inline
|
||||
: VK_OEM_COPY HEX: F2 ; inline
|
||||
: VK_OEM_AUTO HEX: F3 ; inline
|
||||
: VK_OEM_ENLW HEX: F4 ; inline
|
||||
: VK_OEM_BACKTAB HEX: F5 ; inline
|
||||
CONSTANT: VK_OEM_RESET HEX: E9
|
||||
CONSTANT: VK_OEM_JUMP HEX: EA
|
||||
CONSTANT: VK_OEM_PA1 HEX: EB
|
||||
CONSTANT: VK_OEM_PA2 HEX: EC
|
||||
CONSTANT: VK_OEM_PA3 HEX: ED
|
||||
CONSTANT: VK_OEM_WSCTRL HEX: EE
|
||||
CONSTANT: VK_OEM_CUSEL HEX: EF
|
||||
CONSTANT: VK_OEM_ATTN HEX: F0
|
||||
CONSTANT: VK_OEM_FINISH HEX: F1
|
||||
CONSTANT: VK_OEM_COPY HEX: F2
|
||||
CONSTANT: VK_OEM_AUTO HEX: F3
|
||||
CONSTANT: VK_OEM_ENLW HEX: F4
|
||||
CONSTANT: VK_OEM_BACKTAB HEX: F5
|
||||
|
||||
: VK_ATTN HEX: F6 ; inline
|
||||
: VK_CRSEL HEX: F7 ; inline
|
||||
: VK_EXSEL HEX: F8 ; inline
|
||||
: VK_EREOF HEX: F9 ; inline
|
||||
: VK_PLAY HEX: FA ; inline
|
||||
: VK_ZOOM HEX: FB ; inline
|
||||
: VK_NONAME HEX: FC ; inline
|
||||
: VK_PA1 HEX: FD ; inline
|
||||
: VK_OEM_CLEAR HEX: FE ; inline
|
||||
CONSTANT: VK_ATTN HEX: F6
|
||||
CONSTANT: VK_CRSEL HEX: F7
|
||||
CONSTANT: VK_EXSEL HEX: F8
|
||||
CONSTANT: VK_EREOF HEX: F9
|
||||
CONSTANT: VK_PLAY HEX: FA
|
||||
CONSTANT: VK_ZOOM HEX: FB
|
||||
CONSTANT: VK_NONAME HEX: FC
|
||||
CONSTANT: VK_PA1 HEX: FD
|
||||
CONSTANT: VK_OEM_CLEAR HEX: FE
|
||||
! 0xFF : reserved
|
||||
|
||||
! Key State Masks for Mouse Messages
|
||||
: MK_LBUTTON HEX: 0001 ; inline
|
||||
: MK_RBUTTON HEX: 0002 ; inline
|
||||
: MK_SHIFT HEX: 0004 ; inline
|
||||
: MK_CONTROL HEX: 0008 ; inline
|
||||
: MK_MBUTTON HEX: 0010 ; inline
|
||||
: MK_XBUTTON1 HEX: 0020 ; inline
|
||||
: MK_XBUTTON2 HEX: 0040 ; inline
|
||||
CONSTANT: MK_LBUTTON HEX: 0001
|
||||
CONSTANT: MK_RBUTTON HEX: 0002
|
||||
CONSTANT: MK_SHIFT HEX: 0004
|
||||
CONSTANT: MK_CONTROL HEX: 0008
|
||||
CONSTANT: MK_MBUTTON HEX: 0010
|
||||
CONSTANT: MK_XBUTTON1 HEX: 0020
|
||||
CONSTANT: MK_XBUTTON2 HEX: 0040
|
||||
|
||||
! Some fields are not defined for win64
|
||||
! Window field offsets for GetWindowLong()
|
||||
: GWL_WNDPROC -4 ; inline
|
||||
: GWL_HINSTANCE -6 ; inline
|
||||
: GWL_HWNDPARENT -8 ; inline
|
||||
: GWL_USERDATA -21 ; inline
|
||||
: GWL_ID -12 ; inline
|
||||
CONSTANT: GWL_WNDPROC -4
|
||||
CONSTANT: GWL_HINSTANCE -6
|
||||
CONSTANT: GWL_HWNDPARENT -8
|
||||
CONSTANT: GWL_USERDATA -21
|
||||
CONSTANT: GWL_ID -12
|
||||
|
||||
: GWL_STYLE -16 ; inline
|
||||
: GWL_EXSTYLE -20 ; inline
|
||||
CONSTANT: GWL_STYLE -16
|
||||
CONSTANT: GWL_EXSTYLE -20
|
||||
|
||||
: GWLP_WNDPROC -4 ; inline
|
||||
: GWLP_HINSTANCE -6 ; inline
|
||||
: GWLP_HWNDPARENT -8 ; inline
|
||||
: GWLP_USERDATA -21 ; inline
|
||||
: GWLP_ID -12 ; inline
|
||||
CONSTANT: GWLP_WNDPROC -4
|
||||
CONSTANT: GWLP_HINSTANCE -6
|
||||
CONSTANT: GWLP_HWNDPARENT -8
|
||||
CONSTANT: GWLP_USERDATA -21
|
||||
CONSTANT: GWLP_ID -12
|
||||
|
||||
! Class field offsets for GetClassLong()
|
||||
: GCL_MENUNAME -8 ; inline
|
||||
: GCL_HBRBACKGROUND -10 ; inline
|
||||
: GCL_HCURSOR -12 ; inline
|
||||
: GCL_HICON -14 ; inline
|
||||
: GCL_HMODULE -16 ; inline
|
||||
: GCL_WNDPROC -24 ; inline
|
||||
: GCL_HICONSM -34 ; inline
|
||||
: GCL_CBWNDEXTRA -18 ; inline
|
||||
: GCL_CBCLSEXTRA -20 ; inline
|
||||
: GCL_STYLE -26 ; inline
|
||||
: GCW_ATOM -32 ; inline
|
||||
CONSTANT: GCL_MENUNAME -8
|
||||
CONSTANT: GCL_HBRBACKGROUND -10
|
||||
CONSTANT: GCL_HCURSOR -12
|
||||
CONSTANT: GCL_HICON -14
|
||||
CONSTANT: GCL_HMODULE -16
|
||||
CONSTANT: GCL_WNDPROC -24
|
||||
CONSTANT: GCL_HICONSM -34
|
||||
CONSTANT: GCL_CBWNDEXTRA -18
|
||||
CONSTANT: GCL_CBCLSEXTRA -20
|
||||
CONSTANT: GCL_STYLE -26
|
||||
CONSTANT: GCW_ATOM -32
|
||||
|
||||
: GCLP_MENUNAME -8 ; inline
|
||||
: GCLP_HBRBACKGROUND -10 ; inline
|
||||
: GCLP_HCURSOR -12 ; inline
|
||||
: GCLP_HICON -14 ; inline
|
||||
: GCLP_HMODULE -16 ; inline
|
||||
: GCLP_WNDPROC -24 ; inline
|
||||
: GCLP_HICONSM -34 ; inline
|
||||
CONSTANT: GCLP_MENUNAME -8
|
||||
CONSTANT: GCLP_HBRBACKGROUND -10
|
||||
CONSTANT: GCLP_HCURSOR -12
|
||||
CONSTANT: GCLP_HICON -14
|
||||
CONSTANT: GCLP_HMODULE -16
|
||||
CONSTANT: GCLP_WNDPROC -24
|
||||
CONSTANT: GCLP_HICONSM -34
|
||||
|
||||
: MB_ICONASTERISK HEX: 00000040 ; inline
|
||||
: MB_ICONEXCLAMATION HEX: 00000030 ; inline
|
||||
: MB_ICONHAND HEX: 00000010 ; inline
|
||||
: MB_ICONQUESTION HEX: 00000020 ; inline
|
||||
: MB_OK HEX: 00000000 ; inline
|
||||
CONSTANT: MB_ICONASTERISK HEX: 00000040
|
||||
CONSTANT: MB_ICONEXCLAMATION HEX: 00000030
|
||||
CONSTANT: MB_ICONHAND HEX: 00000010
|
||||
CONSTANT: MB_ICONQUESTION HEX: 00000020
|
||||
CONSTANT: MB_OK HEX: 00000000
|
||||
|
||||
ALIAS: FVIRTKEY TRUE
|
||||
: FNOINVERT 2 ; inline
|
||||
: FSHIFT 4 ; inline
|
||||
: FCONTROL 8 ; inline
|
||||
: FALT 16 ; inline
|
||||
CONSTANT: FNOINVERT 2
|
||||
CONSTANT: FSHIFT 4
|
||||
CONSTANT: FCONTROL 8
|
||||
CONSTANT: FALT 16
|
||||
|
||||
: MAPVK_VK_TO_VSC 0 ; inline
|
||||
: MAPVK_VSC_TO_VK 1 ; inline
|
||||
: MAPVK_VK_TO_CHAR 2 ; inline
|
||||
: MAPVK_VSC_TO_VK_EX 3 ; inline
|
||||
: MAPVK_VK_TO_VSC_EX 3 ; inline
|
||||
CONSTANT: MAPVK_VK_TO_VSC 0
|
||||
CONSTANT: MAPVK_VSC_TO_VK 1
|
||||
CONSTANT: MAPVK_VK_TO_CHAR 2
|
||||
CONSTANT: MAPVK_VSC_TO_VK_EX 3
|
||||
CONSTANT: MAPVK_VK_TO_VSC_EX 3
|
||||
|
||||
: TME_HOVER 1 ; inline
|
||||
: TME_LEAVE 2 ; inline
|
||||
: TME_NONCLIENT 16 ; inline
|
||||
: TME_QUERY HEX: 40000000 ; inline
|
||||
: TME_CANCEL HEX: 80000000 ; inline
|
||||
: HOVER_DEFAULT HEX: ffffffff ; inline
|
||||
CONSTANT: TME_HOVER 1
|
||||
CONSTANT: TME_LEAVE 2
|
||||
CONSTANT: TME_NONCLIENT 16
|
||||
CONSTANT: TME_QUERY HEX: 40000000
|
||||
CONSTANT: TME_CANCEL HEX: 80000000
|
||||
CONSTANT: HOVER_DEFAULT HEX: ffffffff
|
||||
C-STRUCT: TRACKMOUSEEVENT
|
||||
{ "DWORD" "cbSize" }
|
||||
{ "DWORD" "dwFlags" }
|
||||
|
@ -528,15 +528,15 @@ C-STRUCT: TRACKMOUSEEVENT
|
|||
{ "DWORD" "dwHoverTime" } ;
|
||||
TYPEDEF: TRACKMOUSEEVENT* LPTRACKMOUSEEVENT
|
||||
|
||||
: DBT_DEVICEARRIVAL HEX: 8000 ; inline
|
||||
: DBT_DEVICEREMOVECOMPLETE HEX: 8004 ; inline
|
||||
CONSTANT: DBT_DEVICEARRIVAL HEX: 8000
|
||||
CONSTANT: DBT_DEVICEREMOVECOMPLETE HEX: 8004
|
||||
|
||||
: DBT_DEVTYP_DEVICEINTERFACE 5 ; inline
|
||||
CONSTANT: DBT_DEVTYP_DEVICEINTERFACE 5
|
||||
|
||||
: DEVICE_NOTIFY_WINDOW_HANDLE 0 ; inline
|
||||
: DEVICE_NOTIFY_SERVICE_HANDLE 1 ; inline
|
||||
CONSTANT: DEVICE_NOTIFY_WINDOW_HANDLE 0
|
||||
CONSTANT: DEVICE_NOTIFY_SERVICE_HANDLE 1
|
||||
|
||||
: DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 4 ; inline
|
||||
CONSTANT: DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 4
|
||||
|
||||
C-STRUCT: DEV_BROADCAST_HDR
|
||||
{ "DWORD" "dbch_size" }
|
||||
|
@ -672,7 +672,6 @@ ALIAS: CreateWindowEx CreateWindowExW
|
|||
|
||||
: CreateWindow ( a b c d e f g h i j k -- hwnd ) 0 12 -nrot CreateWindowEx ; inline
|
||||
|
||||
|
||||
! FUNCTION: CreateWindowStationA
|
||||
! FUNCTION: CreateWindowStationW
|
||||
! FUNCTION: CsrBroadcastSystemMessageExW
|
||||
|
|
|
@ -8,7 +8,7 @@ IN: windows
|
|||
|
||||
: lo-word ( wparam -- lo ) <short> *short ; inline
|
||||
: hi-word ( wparam -- hi ) -16 shift lo-word ; inline
|
||||
: MAX_UNICODE_PATH 32768 ; inline
|
||||
CONSTANT: MAX_UNICODE_PATH 32768
|
||||
|
||||
! You must LocalFree the return value!
|
||||
FUNCTION: void* error_message ( DWORD id ) ;
|
||||
|
|
|
@ -131,19 +131,19 @@ C-STRUCT: XSetWindowAttributes
|
|||
{ "Colormap" "colormap" }
|
||||
{ "Cursor" "cursor" } ;
|
||||
|
||||
: UnmapGravity 0 ; inline
|
||||
CONSTANT: UnmapGravity 0
|
||||
|
||||
: ForgetGravity 0 ; inline
|
||||
: NorthWestGravity 1 ; inline
|
||||
: NorthGravity 2 ; inline
|
||||
: NorthEastGravity 3 ; inline
|
||||
: WestGravity 4 ; inline
|
||||
: CenterGravity 5 ; inline
|
||||
: EastGravity 6 ; inline
|
||||
: SouthWestGravity 7 ; inline
|
||||
: SouthGravity 8 ; inline
|
||||
: SouthEastGravity 9 ; inline
|
||||
: StaticGravity 10 ; inline
|
||||
CONSTANT: ForgetGravity 0
|
||||
CONSTANT: NorthWestGravity 1
|
||||
CONSTANT: NorthGravity 2
|
||||
CONSTANT: NorthEastGravity 3
|
||||
CONSTANT: WestGravity 4
|
||||
CONSTANT: CenterGravity 5
|
||||
CONSTANT: EastGravity 6
|
||||
CONSTANT: SouthWestGravity 7
|
||||
CONSTANT: SouthGravity 8
|
||||
CONSTANT: SouthEastGravity 9
|
||||
CONSTANT: StaticGravity 10
|
||||
|
||||
! 3.3 - Creating Windows
|
||||
|
||||
|
@ -238,9 +238,9 @@ C-STRUCT: XWindowAttributes
|
|||
|
||||
FUNCTION: Status XGetWindowAttributes ( Display* display, Window w, XWindowAttributes* attr ) ;
|
||||
|
||||
: IsUnmapped 0 ; inline
|
||||
: IsUnviewable 1 ; inline
|
||||
: IsViewable 2 ; inline
|
||||
CONSTANT: IsUnmapped 0
|
||||
CONSTANT: IsUnviewable 1
|
||||
CONSTANT: IsViewable 2
|
||||
|
||||
FUNCTION: Status XGetGeometry (
|
||||
Display* display,
|
||||
|
@ -336,22 +336,22 @@ FUNCTION: Colormap XCreateColormap ( Display* display, Window w, Visual* visual,
|
|||
: GCDashList ( -- n ) 21 2^ ; inline
|
||||
: GCArcMode ( -- n ) 22 2^ ; inline
|
||||
|
||||
: GXclear HEX: 0 ; inline
|
||||
: GXand HEX: 1 ; inline
|
||||
: GXandReverse HEX: 2 ; inline
|
||||
: GXcopy HEX: 3 ; inline
|
||||
: GXandInverted HEX: 4 ; inline
|
||||
: GXnoop HEX: 5 ; inline
|
||||
: GXxor HEX: 6 ; inline
|
||||
: GXor HEX: 7 ; inline
|
||||
: GXnor HEX: 8 ; inline
|
||||
: GXequiv HEX: 9 ; inline
|
||||
: GXinvert HEX: a ; inline
|
||||
: GXorReverse HEX: b ; inline
|
||||
: GXcopyInverted HEX: c ; inline
|
||||
: GXorInverted HEX: d ; inline
|
||||
: GXnand HEX: e ; inline
|
||||
: GXset HEX: f ; inline
|
||||
CONSTANT: GXclear HEX: 0
|
||||
CONSTANT: GXand HEX: 1
|
||||
CONSTANT: GXandReverse HEX: 2
|
||||
CONSTANT: GXcopy HEX: 3
|
||||
CONSTANT: GXandInverted HEX: 4
|
||||
CONSTANT: GXnoop HEX: 5
|
||||
CONSTANT: GXxor HEX: 6
|
||||
CONSTANT: GXor HEX: 7
|
||||
CONSTANT: GXnor HEX: 8
|
||||
CONSTANT: GXequiv HEX: 9
|
||||
CONSTANT: GXinvert HEX: a
|
||||
CONSTANT: GXorReverse HEX: b
|
||||
CONSTANT: GXcopyInverted HEX: c
|
||||
CONSTANT: GXorInverted HEX: d
|
||||
CONSTANT: GXnand HEX: e
|
||||
CONSTANT: GXset HEX: f
|
||||
|
||||
C-STRUCT: XGCValues
|
||||
{ "int" "function" }
|
||||
|
@ -447,10 +447,10 @@ FUNCTION: Status XDrawString (
|
|||
|
||||
! 8.7 - Transferring Images between Client and Server
|
||||
|
||||
: XYBitmap 0 ; inline
|
||||
: XYPixmap 1 ; inline
|
||||
: ZPixmap 2 ; inline
|
||||
: AllPlanes -1 ; inline
|
||||
CONSTANT: XYBitmap 0
|
||||
CONSTANT: XYPixmap 1
|
||||
CONSTANT: ZPixmap 2
|
||||
CONSTANT: AllPlanes -1
|
||||
|
||||
C-STRUCT: XImage-funcs
|
||||
{ "void*" "create_image" }
|
||||
|
@ -532,40 +532,40 @@ FUNCTION: Status XKillClient ( Display* display, XID resource ) ;
|
|||
: ColormapChangeMask ( -- n ) 23 2^ ; inline
|
||||
: OwnerGrabButtonMask ( -- n ) 24 2^ ; inline
|
||||
|
||||
: KeyPress 2 ; inline
|
||||
: KeyRelease 3 ; inline
|
||||
: ButtonPress 4 ; inline
|
||||
: ButtonRelease 5 ; inline
|
||||
: MotionNotify 6 ; inline
|
||||
: EnterNotify 7 ; inline
|
||||
: LeaveNotify 8 ; inline
|
||||
: FocusIn 9 ; inline
|
||||
: FocusOut 10 ; inline
|
||||
: KeymapNotify 11 ; inline
|
||||
: Expose 12 ; inline
|
||||
: GraphicsExpose 13 ; inline
|
||||
: NoExpose 14 ; inline
|
||||
: VisibilityNotify 15 ; inline
|
||||
: CreateNotify 16 ; inline
|
||||
: DestroyNotify 17 ; inline
|
||||
: UnmapNotify 18 ; inline
|
||||
: MapNotify 19 ; inline
|
||||
: MapRequest 20 ; inline
|
||||
: ReparentNotify 21 ; inline
|
||||
: ConfigureNotify 22 ; inline
|
||||
: ConfigureRequest 23 ; inline
|
||||
: GravityNotify 24 ; inline
|
||||
: ResizeRequest 25 ; inline
|
||||
: CirculateNotify 26 ; inline
|
||||
: CirculateRequest 27 ; inline
|
||||
: PropertyNotify 28 ; inline
|
||||
: SelectionClear 29 ; inline
|
||||
: SelectionRequest 30 ; inline
|
||||
: SelectionNotify 31 ; inline
|
||||
: ColormapNotify 32 ; inline
|
||||
: ClientMessage 33 ; inline
|
||||
: MappingNotify 34 ; inline
|
||||
: LASTEvent 35 ; inline
|
||||
CONSTANT: KeyPress 2
|
||||
CONSTANT: KeyRelease 3
|
||||
CONSTANT: ButtonPress 4
|
||||
CONSTANT: ButtonRelease 5
|
||||
CONSTANT: MotionNotify 6
|
||||
CONSTANT: EnterNotify 7
|
||||
CONSTANT: LeaveNotify 8
|
||||
CONSTANT: FocusIn 9
|
||||
CONSTANT: FocusOut 10
|
||||
CONSTANT: KeymapNotify 11
|
||||
CONSTANT: Expose 12
|
||||
CONSTANT: GraphicsExpose 13
|
||||
CONSTANT: NoExpose 14
|
||||
CONSTANT: VisibilityNotify 15
|
||||
CONSTANT: CreateNotify 16
|
||||
CONSTANT: DestroyNotify 17
|
||||
CONSTANT: UnmapNotify 18
|
||||
CONSTANT: MapNotify 19
|
||||
CONSTANT: MapRequest 20
|
||||
CONSTANT: ReparentNotify 21
|
||||
CONSTANT: ConfigureNotify 22
|
||||
CONSTANT: ConfigureRequest 23
|
||||
CONSTANT: GravityNotify 24
|
||||
CONSTANT: ResizeRequest 25
|
||||
CONSTANT: CirculateNotify 26
|
||||
CONSTANT: CirculateRequest 27
|
||||
CONSTANT: PropertyNotify 28
|
||||
CONSTANT: SelectionClear 29
|
||||
CONSTANT: SelectionRequest 30
|
||||
CONSTANT: SelectionNotify 31
|
||||
CONSTANT: ColormapNotify 32
|
||||
CONSTANT: ClientMessage 33
|
||||
CONSTANT: MappingNotify 34
|
||||
CONSTANT: LASTEvent 35
|
||||
|
||||
C-STRUCT: XAnyEvent
|
||||
{ "int" "type" }
|
||||
|
@ -578,11 +578,11 @@ C-STRUCT: XAnyEvent
|
|||
|
||||
! 10.5 Keyboard and Pointer Events
|
||||
|
||||
: Button1 1 ; inline
|
||||
: Button2 2 ; inline
|
||||
: Button3 3 ; inline
|
||||
: Button4 4 ; inline
|
||||
: Button5 5 ; inline
|
||||
CONSTANT: Button1 1
|
||||
CONSTANT: Button2 2
|
||||
CONSTANT: Button3 3
|
||||
CONSTANT: Button4 4
|
||||
CONSTANT: Button5 5
|
||||
|
||||
: Button1Mask ( -- n ) 1 8 shift ; inline
|
||||
: Button2Mask ( -- n ) 1 9 shift ; inline
|
||||
|
@ -1074,9 +1074,9 @@ FUNCTION: Status XMaskEvent ( Display* display, long event_mask, XEvent* event_r
|
|||
|
||||
! 11.3 - Event Queue Management
|
||||
|
||||
: QueuedAlready 0 ; inline
|
||||
: QueuedAfterReading 1 ; inline
|
||||
: QueuedAfterFlush 2 ; inline
|
||||
CONSTANT: QueuedAlready 0
|
||||
CONSTANT: QueuedAfterReading 1
|
||||
CONSTANT: QueuedAfterFlush 2
|
||||
|
||||
FUNCTION: int XEventsQueued ( Display* display, int mode ) ;
|
||||
FUNCTION: int XPending ( Display* display ) ;
|
||||
|
@ -1093,7 +1093,7 @@ FUNCTION: int XSetErrorHandler ( void* handler ) ;
|
|||
! 12 - Input Device Functions
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: None 0 ; inline
|
||||
CONSTANT: None 0
|
||||
|
||||
FUNCTION: int XGrabPointer (
|
||||
Display* display,
|
||||
|
@ -1199,17 +1199,17 @@ FUNCTION: int XLookupString (
|
|||
|
||||
! 16.7 Determining the Appropriate Visual Type
|
||||
|
||||
: VisualNoMask HEX: 0 ; inline
|
||||
: VisualIDMask HEX: 1 ; inline
|
||||
: VisualScreenMask HEX: 2 ; inline
|
||||
: VisualDepthMask HEX: 4 ; inline
|
||||
: VisualClassMask HEX: 8 ; inline
|
||||
: VisualRedMaskMask HEX: 10 ; inline
|
||||
: VisualGreenMaskMask HEX: 20 ; inline
|
||||
: VisualBlueMaskMask HEX: 40 ; inline
|
||||
: VisualColormapSizeMask HEX: 80 ; inline
|
||||
: VisualBitsPerRGBMask HEX: 100 ; inline
|
||||
: VisualAllMask HEX: 1FF ; inline
|
||||
CONSTANT: VisualNoMask HEX: 0
|
||||
CONSTANT: VisualIDMask HEX: 1
|
||||
CONSTANT: VisualScreenMask HEX: 2
|
||||
CONSTANT: VisualDepthMask HEX: 4
|
||||
CONSTANT: VisualClassMask HEX: 8
|
||||
CONSTANT: VisualRedMaskMask HEX: 10
|
||||
CONSTANT: VisualGreenMaskMask HEX: 20
|
||||
CONSTANT: VisualBlueMaskMask HEX: 40
|
||||
CONSTANT: VisualColormapSizeMask HEX: 80
|
||||
CONSTANT: VisualBitsPerRGBMask HEX: 100
|
||||
CONSTANT: VisualAllMask HEX: 1FF
|
||||
|
||||
C-STRUCT: XVisualInfo
|
||||
{ "Visual*" "visual" }
|
||||
|
@ -1239,76 +1239,76 @@ FUNCTION: Status XSetStandardProperties (
|
|||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: XA_PRIMARY 1 ; inline
|
||||
: XA_SECONDARY 2 ; inline
|
||||
: XA_ARC 3 ; inline
|
||||
: XA_ATOM 4 ; inline
|
||||
: XA_BITMAP 5 ; inline
|
||||
: XA_CARDINAL 6 ; inline
|
||||
: XA_COLORMAP 7 ; inline
|
||||
: XA_CURSOR 8 ; inline
|
||||
: XA_CUT_BUFFER0 9 ; inline
|
||||
: XA_CUT_BUFFER1 10 ; inline
|
||||
: XA_CUT_BUFFER2 11 ; inline
|
||||
: XA_CUT_BUFFER3 12 ; inline
|
||||
: XA_CUT_BUFFER4 13 ; inline
|
||||
: XA_CUT_BUFFER5 14 ; inline
|
||||
: XA_CUT_BUFFER6 15 ; inline
|
||||
: XA_CUT_BUFFER7 16 ; inline
|
||||
: XA_DRAWABLE 17 ; inline
|
||||
: XA_FONT 18 ; inline
|
||||
: XA_INTEGER 19 ; inline
|
||||
: XA_PIXMAP 20 ; inline
|
||||
: XA_POINT 21 ; inline
|
||||
: XA_RECTANGLE 22 ; inline
|
||||
: XA_RESOURCE_MANAGER 23 ; inline
|
||||
: XA_RGB_COLOR_MAP 24 ; inline
|
||||
: XA_RGB_BEST_MAP 25 ; inline
|
||||
: XA_RGB_BLUE_MAP 26 ; inline
|
||||
: XA_RGB_DEFAULT_MAP 27 ; inline
|
||||
: XA_RGB_GRAY_MAP 28 ; inline
|
||||
: XA_RGB_GREEN_MAP 29 ; inline
|
||||
: XA_RGB_RED_MAP 30 ; inline
|
||||
: XA_STRING 31 ; inline
|
||||
: XA_VISUALID 32 ; inline
|
||||
: XA_WINDOW 33 ; inline
|
||||
: XA_WM_COMMAND 34 ; inline
|
||||
: XA_WM_HINTS 35 ; inline
|
||||
: XA_WM_CLIENT_MACHINE 36 ; inline
|
||||
: XA_WM_ICON_NAME 37 ; inline
|
||||
: XA_WM_ICON_SIZE 38 ; inline
|
||||
: XA_WM_NAME 39 ; inline
|
||||
: XA_WM_NORMAL_HINTS 40 ; inline
|
||||
: XA_WM_SIZE_HINTS 41 ; inline
|
||||
: XA_WM_ZOOM_HINTS 42 ; inline
|
||||
: XA_MIN_SPACE 43 ; inline
|
||||
: XA_NORM_SPACE 44 ; inline
|
||||
: XA_MAX_SPACE 45 ; inline
|
||||
: XA_END_SPACE 46 ; inline
|
||||
: XA_SUPERSCRIPT_X 47 ; inline
|
||||
: XA_SUPERSCRIPT_Y 48 ; inline
|
||||
: XA_SUBSCRIPT_X 49 ; inline
|
||||
: XA_SUBSCRIPT_Y 50 ; inline
|
||||
: XA_UNDERLINE_POSITION 51 ; inline
|
||||
: XA_UNDERLINE_THICKNESS 52 ; inline
|
||||
: XA_STRIKEOUT_ASCENT 53 ; inline
|
||||
: XA_STRIKEOUT_DESCENT 54 ; inline
|
||||
: XA_ITALIC_ANGLE 55 ; inline
|
||||
: XA_X_HEIGHT 56 ; inline
|
||||
: XA_QUAD_WIDTH 57 ; inline
|
||||
: XA_WEIGHT 58 ; inline
|
||||
: XA_POINT_SIZE 59 ; inline
|
||||
: XA_RESOLUTION 60 ; inline
|
||||
: XA_COPYRIGHT 61 ; inline
|
||||
: XA_NOTICE 62 ; inline
|
||||
: XA_FONT_NAME 63 ; inline
|
||||
: XA_FAMILY_NAME 64 ; inline
|
||||
: XA_FULL_NAME 65 ; inline
|
||||
: XA_CAP_HEIGHT 66 ; inline
|
||||
: XA_WM_CLASS 67 ; inline
|
||||
: XA_WM_TRANSIENT_FOR 68 ; inline
|
||||
CONSTANT: XA_PRIMARY 1
|
||||
CONSTANT: XA_SECONDARY 2
|
||||
CONSTANT: XA_ARC 3
|
||||
CONSTANT: XA_ATOM 4
|
||||
CONSTANT: XA_BITMAP 5
|
||||
CONSTANT: XA_CARDINAL 6
|
||||
CONSTANT: XA_COLORMAP 7
|
||||
CONSTANT: XA_CURSOR 8
|
||||
CONSTANT: XA_CUT_BUFFER0 9
|
||||
CONSTANT: XA_CUT_BUFFER1 10
|
||||
CONSTANT: XA_CUT_BUFFER2 11
|
||||
CONSTANT: XA_CUT_BUFFER3 12
|
||||
CONSTANT: XA_CUT_BUFFER4 13
|
||||
CONSTANT: XA_CUT_BUFFER5 14
|
||||
CONSTANT: XA_CUT_BUFFER6 15
|
||||
CONSTANT: XA_CUT_BUFFER7 16
|
||||
CONSTANT: XA_DRAWABLE 17
|
||||
CONSTANT: XA_FONT 18
|
||||
CONSTANT: XA_INTEGER 19
|
||||
CONSTANT: XA_PIXMAP 20
|
||||
CONSTANT: XA_POINT 21
|
||||
CONSTANT: XA_RECTANGLE 22
|
||||
CONSTANT: XA_RESOURCE_MANAGER 23
|
||||
CONSTANT: XA_RGB_COLOR_MAP 24
|
||||
CONSTANT: XA_RGB_BEST_MAP 25
|
||||
CONSTANT: XA_RGB_BLUE_MAP 26
|
||||
CONSTANT: XA_RGB_DEFAULT_MAP 27
|
||||
CONSTANT: XA_RGB_GRAY_MAP 28
|
||||
CONSTANT: XA_RGB_GREEN_MAP 29
|
||||
CONSTANT: XA_RGB_RED_MAP 30
|
||||
CONSTANT: XA_STRING 31
|
||||
CONSTANT: XA_VISUALID 32
|
||||
CONSTANT: XA_WINDOW 33
|
||||
CONSTANT: XA_WM_COMMAND 34
|
||||
CONSTANT: XA_WM_HINTS 35
|
||||
CONSTANT: XA_WM_CLIENT_MACHINE 36
|
||||
CONSTANT: XA_WM_ICON_NAME 37
|
||||
CONSTANT: XA_WM_ICON_SIZE 38
|
||||
CONSTANT: XA_WM_NAME 39
|
||||
CONSTANT: XA_WM_NORMAL_HINTS 40
|
||||
CONSTANT: XA_WM_SIZE_HINTS 41
|
||||
CONSTANT: XA_WM_ZOOM_HINTS 42
|
||||
CONSTANT: XA_MIN_SPACE 43
|
||||
CONSTANT: XA_NORM_SPACE 44
|
||||
CONSTANT: XA_MAX_SPACE 45
|
||||
CONSTANT: XA_END_SPACE 46
|
||||
CONSTANT: XA_SUPERSCRIPT_X 47
|
||||
CONSTANT: XA_SUPERSCRIPT_Y 48
|
||||
CONSTANT: XA_SUBSCRIPT_X 49
|
||||
CONSTANT: XA_SUBSCRIPT_Y 50
|
||||
CONSTANT: XA_UNDERLINE_POSITION 51
|
||||
CONSTANT: XA_UNDERLINE_THICKNESS 52
|
||||
CONSTANT: XA_STRIKEOUT_ASCENT 53
|
||||
CONSTANT: XA_STRIKEOUT_DESCENT 54
|
||||
CONSTANT: XA_ITALIC_ANGLE 55
|
||||
CONSTANT: XA_X_HEIGHT 56
|
||||
CONSTANT: XA_QUAD_WIDTH 57
|
||||
CONSTANT: XA_WEIGHT 58
|
||||
CONSTANT: XA_POINT_SIZE 59
|
||||
CONSTANT: XA_RESOLUTION 60
|
||||
CONSTANT: XA_COPYRIGHT 61
|
||||
CONSTANT: XA_NOTICE 62
|
||||
CONSTANT: XA_FONT_NAME 63
|
||||
CONSTANT: XA_FAMILY_NAME 64
|
||||
CONSTANT: XA_FULL_NAME 65
|
||||
CONSTANT: XA_CAP_HEIGHT 66
|
||||
CONSTANT: XA_WM_CLASS 67
|
||||
CONSTANT: XA_WM_TRANSIENT_FOR 68
|
||||
|
||||
: XA_LAST_PREDEFINED 68 ; inline
|
||||
CONSTANT: XA_LAST_PREDEFINED 68
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! The rest of the stuff is not from the book.
|
||||
|
@ -1321,65 +1321,65 @@ FUNCTION: int XBell ( Display* display, int percent ) ;
|
|||
|
||||
! !!! INPUT METHODS
|
||||
|
||||
: XIMPreeditArea HEX: 0001 ; inline
|
||||
: XIMPreeditCallbacks HEX: 0002 ; inline
|
||||
: XIMPreeditPosition HEX: 0004 ; inline
|
||||
: XIMPreeditNothing HEX: 0008 ; inline
|
||||
: XIMPreeditNone HEX: 0010 ; inline
|
||||
: XIMStatusArea HEX: 0100 ; inline
|
||||
: XIMStatusCallbacks HEX: 0200 ; inline
|
||||
: XIMStatusNothing HEX: 0400 ; inline
|
||||
: XIMStatusNone HEX: 0800 ; inline
|
||||
CONSTANT: XIMPreeditArea HEX: 0001
|
||||
CONSTANT: XIMPreeditCallbacks HEX: 0002
|
||||
CONSTANT: XIMPreeditPosition HEX: 0004
|
||||
CONSTANT: XIMPreeditNothing HEX: 0008
|
||||
CONSTANT: XIMPreeditNone HEX: 0010
|
||||
CONSTANT: XIMStatusArea HEX: 0100
|
||||
CONSTANT: XIMStatusCallbacks HEX: 0200
|
||||
CONSTANT: XIMStatusNothing HEX: 0400
|
||||
CONSTANT: XIMStatusNone HEX: 0800
|
||||
|
||||
: XNVaNestedList "XNVaNestedList" ;
|
||||
: XNQueryInputStyle "queryInputStyle" ;
|
||||
: XNClientWindow "clientWindow" ;
|
||||
: XNInputStyle "inputStyle" ;
|
||||
: XNFocusWindow "focusWindow" ;
|
||||
: XNResourceName "resourceName" ;
|
||||
: XNResourceClass "resourceClass" ;
|
||||
: XNGeometryCallback "geometryCallback" ;
|
||||
: XNDestroyCallback "destroyCallback" ;
|
||||
: XNFilterEvents "filterEvents" ;
|
||||
: XNPreeditStartCallback "preeditStartCallback" ;
|
||||
: XNPreeditDoneCallback "preeditDoneCallback" ;
|
||||
: XNPreeditDrawCallback "preeditDrawCallback" ;
|
||||
: XNPreeditCaretCallback "preeditCaretCallback" ;
|
||||
: XNPreeditStateNotifyCallback "preeditStateNotifyCallback" ;
|
||||
: XNPreeditAttributes "preeditAttributes" ;
|
||||
: XNStatusStartCallback "statusStartCallback" ;
|
||||
: XNStatusDoneCallback "statusDoneCallback" ;
|
||||
: XNStatusDrawCallback "statusDrawCallback" ;
|
||||
: XNStatusAttributes "statusAttributes" ;
|
||||
: XNArea "area" ;
|
||||
: XNAreaNeeded "areaNeeded" ;
|
||||
: XNSpotLocation "spotLocation" ;
|
||||
: XNColormap "colorMap" ;
|
||||
: XNStdColormap "stdColorMap" ;
|
||||
: XNForeground "foreground" ;
|
||||
: XNBackground "background" ;
|
||||
: XNBackgroundPixmap "backgroundPixmap" ;
|
||||
: XNFontSet "fontSet" ;
|
||||
: XNLineSpace "lineSpace" ;
|
||||
: XNCursor "cursor" ;
|
||||
CONSTANT: XNVaNestedList "XNVaNestedList"
|
||||
CONSTANT: XNQueryInputStyle "queryInputStyle"
|
||||
CONSTANT: XNClientWindow "clientWindow"
|
||||
CONSTANT: XNInputStyle "inputStyle"
|
||||
CONSTANT: XNFocusWindow "focusWindow"
|
||||
CONSTANT: XNResourceName "resourceName"
|
||||
CONSTANT: XNResourceClass "resourceClass"
|
||||
CONSTANT: XNGeometryCallback "geometryCallback"
|
||||
CONSTANT: XNDestroyCallback "destroyCallback"
|
||||
CONSTANT: XNFilterEvents "filterEvents"
|
||||
CONSTANT: XNPreeditStartCallback "preeditStartCallback"
|
||||
CONSTANT: XNPreeditDoneCallback "preeditDoneCallback"
|
||||
CONSTANT: XNPreeditDrawCallback "preeditDrawCallback"
|
||||
CONSTANT: XNPreeditCaretCallback "preeditCaretCallback"
|
||||
CONSTANT: XNPreeditStateNotifyCallback "preeditStateNotifyCallback"
|
||||
CONSTANT: XNPreeditAttributes "preeditAttributes"
|
||||
CONSTANT: XNStatusStartCallback "statusStartCallback"
|
||||
CONSTANT: XNStatusDoneCallback "statusDoneCallback"
|
||||
CONSTANT: XNStatusDrawCallback "statusDrawCallback"
|
||||
CONSTANT: XNStatusAttributes "statusAttributes"
|
||||
CONSTANT: XNArea "area"
|
||||
CONSTANT: XNAreaNeeded "areaNeeded"
|
||||
CONSTANT: XNSpotLocation "spotLocation"
|
||||
CONSTANT: XNColormap "colorMap"
|
||||
CONSTANT: XNStdColormap "stdColorMap"
|
||||
CONSTANT: XNForeground "foreground"
|
||||
CONSTANT: XNBackground "background"
|
||||
CONSTANT: XNBackgroundPixmap "backgroundPixmap"
|
||||
CONSTANT: XNFontSet "fontSet"
|
||||
CONSTANT: XNLineSpace "lineSpace"
|
||||
CONSTANT: XNCursor "cursor"
|
||||
|
||||
: XNQueryIMValuesList "queryIMValuesList" ;
|
||||
: XNQueryICValuesList "queryICValuesList" ;
|
||||
: XNVisiblePosition "visiblePosition" ;
|
||||
: XNR6PreeditCallback "r6PreeditCallback" ;
|
||||
: XNStringConversionCallback "stringConversionCallback" ;
|
||||
: XNStringConversion "stringConversion" ;
|
||||
: XNResetState "resetState" ;
|
||||
: XNHotKey "hotKey" ;
|
||||
: XNHotKeyState "hotKeyState" ;
|
||||
: XNPreeditState "preeditState" ;
|
||||
: XNSeparatorofNestedList "separatorofNestedList" ;
|
||||
CONSTANT: XNQueryIMValuesList "queryIMValuesList"
|
||||
CONSTANT: XNQueryICValuesList "queryICValuesList"
|
||||
CONSTANT: XNVisiblePosition "visiblePosition"
|
||||
CONSTANT: XNR6PreeditCallback "r6PreeditCallback"
|
||||
CONSTANT: XNStringConversionCallback "stringConversionCallback"
|
||||
CONSTANT: XNStringConversion "stringConversion"
|
||||
CONSTANT: XNResetState "resetState"
|
||||
CONSTANT: XNHotKey "hotKey"
|
||||
CONSTANT: XNHotKeyState "hotKeyState"
|
||||
CONSTANT: XNPreeditState "preeditState"
|
||||
CONSTANT: XNSeparatorofNestedList "separatorofNestedList"
|
||||
|
||||
: XBufferOverflow -1 ;
|
||||
: XLookupNone 1 ;
|
||||
: XLookupChars 2 ;
|
||||
: XLookupKeySym 3 ;
|
||||
: XLookupBoth 4 ;
|
||||
CONSTANT: XBufferOverflow -1
|
||||
CONSTANT: XLookupNone 1
|
||||
CONSTANT: XLookupChars 2
|
||||
CONSTANT: XLookupKeySym 3
|
||||
CONSTANT: XLookupBoth 4
|
||||
|
||||
FUNCTION: Bool XFilterEvent ( XEvent* event, Window w ) ;
|
||||
|
||||
|
@ -1400,12 +1400,12 @@ FUNCTION: int XwcLookupString ( XIC ic, XKeyPressedEvent* event, ulong* buffer_r
|
|||
FUNCTION: int Xutf8LookupString ( XIC ic, XKeyPressedEvent* event, char* buffer_return, int bytes_buffer, KeySym* keysym_return, Status* status_return ) ;
|
||||
|
||||
! !!! category of setlocale
|
||||
: LC_ALL 0 ; inline
|
||||
: LC_COLLATE 1 ; inline
|
||||
: LC_CTYPE 2 ; inline
|
||||
: LC_MONETARY 3 ; inline
|
||||
: LC_NUMERIC 4 ; inline
|
||||
: LC_TIME 5 ; inline
|
||||
CONSTANT: LC_ALL 0
|
||||
CONSTANT: LC_COLLATE 1
|
||||
CONSTANT: LC_CTYPE 2
|
||||
CONSTANT: LC_MONETARY 3
|
||||
CONSTANT: LC_NUMERIC 4
|
||||
CONSTANT: LC_TIME 5
|
||||
|
||||
FUNCTION: char* setlocale ( int category, char* name ) ;
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ ARTICLE: "assocs-lookup" "Lookup and querying of assocs"
|
|||
"Utility operations built up from the " { $link "assocs-protocol" } ":"
|
||||
{ $subsection key? }
|
||||
{ $subsection at }
|
||||
{ $subsection ?at }
|
||||
{ $subsection assoc-empty? }
|
||||
{ $subsection keys }
|
||||
{ $subsection values }
|
||||
|
@ -188,12 +189,16 @@ HELP: key?
|
|||
{ $values { "key" object } { "assoc" assoc } { "?" "a boolean" } }
|
||||
{ $description "Tests if an assoc contains a key." } ;
|
||||
|
||||
{ at at* key? } related-words
|
||||
{ at at* key? ?at } related-words
|
||||
|
||||
HELP: at
|
||||
{ $values { "key" "an object" } { "assoc" assoc } { "value/f" "the value associated to the key, or " { $link f } " if the key is not present in the assoc" } }
|
||||
{ $description "Looks up the value associated with a key. This word makes no distinction between a missing value and a value set to " { $link f } "; if the difference is important, use " { $link at* } "." } ;
|
||||
|
||||
HELP: ?at
|
||||
{ $values { "key" "an object" } { "assoc" assoc } { "value/key" "the value associated to the key, or the key if the key is not present in the assoc" } { "?" "a boolean" } }
|
||||
{ $description "Looks up the value associated with a key. If the key was not present, an error can be thrown without extra stack shuffling. This word handles assocs that store " { $link f } "." } ;
|
||||
|
||||
HELP: assoc-each
|
||||
{ $values { "assoc" assoc } { "quot" { $quotation "( key value -- )" } } }
|
||||
{ $description "Applies a quotation to each entry in the assoc." }
|
||||
|
|
|
@ -138,4 +138,7 @@ unit-test
|
|||
{ "c" [ 3 ] }
|
||||
{ "d" [ 4 ] }
|
||||
} [ nip first even? ] assoc-partition
|
||||
] unit-test
|
||||
] unit-test
|
||||
|
||||
[ 1 f ] [ 1 H{ } ?at ] unit-test
|
||||
[ 2 t ] [ 1 H{ { 1 2 } } ?at ] unit-test
|
||||
|
|
|
@ -19,6 +19,9 @@ GENERIC: >alist ( assoc -- newassoc )
|
|||
|
||||
M: assoc assoc-like drop ;
|
||||
|
||||
: ?at ( key assoc -- value/key ? )
|
||||
dupd at* [ [ nip ] [ drop ] if ] keep ; inline
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: (assoc-each) ( assoc quot -- seq quot' )
|
||||
|
@ -36,7 +39,7 @@ M: assoc assoc-like drop ;
|
|||
[ first = ] with find swap ; inline
|
||||
|
||||
: substituter ( assoc -- quot )
|
||||
[ dupd at* [ nip ] [ drop ] if ] curry ; inline
|
||||
[ ?at drop ] curry ; inline
|
||||
|
||||
: with-assoc ( assoc quot: ( value key -- assoc ) -- quot: ( key value -- ) )
|
||||
curry [ swap ] prepose ; inline
|
||||
|
@ -80,7 +83,7 @@ PRIVATE>
|
|||
at* drop ; inline
|
||||
|
||||
: at-default ( key assoc -- value/key )
|
||||
2dup at* [ 2nip ] [ 2drop ] if ; inline
|
||||
?at drop ; inline
|
||||
|
||||
M: assoc assoc-clone-like ( assoc exemplar -- newassoc )
|
||||
[ dup assoc-size ] dip new-assoc
|
||||
|
|
|
@ -5,9 +5,9 @@ words io io.binary io.files io.streams.string quotations
|
|||
definitions checksums ;
|
||||
IN: checksums.crc32
|
||||
|
||||
: crc32-polynomial HEX: edb88320 ; inline
|
||||
CONSTANT: crc32-polynomial HEX: edb88320
|
||||
|
||||
: crc32-table V{ } ; inline
|
||||
CONSTANT: crc32-table V{ }
|
||||
|
||||
256 [
|
||||
8 [
|
||||
|
|
|
@ -176,8 +176,8 @@ IN: combinators.tests
|
|||
|
||||
[ "an array" ] [ { 1 2 3 } case-test-3 ] unit-test
|
||||
|
||||
: case-const-1 1 ;
|
||||
: case-const-2 2 ; inline
|
||||
CONSTANT: case-const-1 1
|
||||
CONSTANT: case-const-2 2
|
||||
|
||||
! Compiled
|
||||
: case-test-4 ( obj -- str )
|
||||
|
|
|
@ -14,7 +14,7 @@ GENERIC: encode-char ( char stream encoding -- )
|
|||
|
||||
GENERIC: <decoder> ( stream encoding -- newstream )
|
||||
|
||||
: replacement-char HEX: fffd ; inline
|
||||
CONSTANT: replacement-char HEX: fffd
|
||||
|
||||
TUPLE: decoder stream code cr ;
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ compiled-generic-crossref [ H{ } clone ] initialize
|
|||
|
||||
SYMBOL: visited
|
||||
|
||||
: reset-on-redefine { "inferred-effect" "cannot-infer" } ; inline
|
||||
CONSTANT: reset-on-redefine { "inferred-effect" "cannot-infer" }
|
||||
|
||||
: (redefined) ( word -- )
|
||||
dup visited get key? [ drop ] [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
! Copyright (C) 2008 Your name.
|
||||
! Copyright (C) 2008 Jeff Bigot.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays help.markup help.syntax kernel sequences ;
|
||||
IN: adsoda.combinators
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
IN: asn1.ldap
|
||||
|
||||
: SearchScope_BaseObject 0 ; inline
|
||||
: SearchScope_SingleLevel 1 ; inline
|
||||
: SearchScope_WholeSubtree 2 ; inline
|
||||
CONSTANT: SearchScope_BaseObject 0
|
||||
CONSTANT: SearchScope_SingleLevel 1
|
||||
CONSTANT: SearchScope_WholeSubtree 2
|
||||
|
||||
: asn-syntax ( -- hashtable )
|
||||
H{
|
||||
|
|
|
@ -23,7 +23,7 @@ M: tree-node item-check
|
|||
|
||||
M: f item-check drop 0 ;
|
||||
|
||||
: min-depth 4 ; inline
|
||||
CONSTANT: min-depth 4
|
||||
|
||||
: stretch-tree ( max-depth -- )
|
||||
1 + 0 over bottom-up-tree item-check
|
||||
|
|
|
@ -4,11 +4,11 @@ sequences.private benchmark.reverse-complement hints io.encodings.ascii
|
|||
byte-arrays specialized-arrays.double ;
|
||||
IN: benchmark.fasta
|
||||
|
||||
: IM 139968 ; inline
|
||||
: IA 3877 ; inline
|
||||
: IC 29573 ; inline
|
||||
: initial-seed 42 ; inline
|
||||
: line-length 60 ; inline
|
||||
CONSTANT: IM 139968
|
||||
CONSTANT: IA 3877
|
||||
CONSTANT: IC 29573
|
||||
CONSTANT: initial-seed 42
|
||||
CONSTANT: line-length 60
|
||||
|
||||
USE: math.private
|
||||
|
||||
|
@ -17,7 +17,7 @@ USE: math.private
|
|||
|
||||
HINTS: random fixnum ;
|
||||
|
||||
: ALU "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA" ; inline
|
||||
CONSTANT: ALU "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"
|
||||
|
||||
: IUB
|
||||
{
|
||||
|
|
|
@ -7,8 +7,8 @@ IN: benchmark.mandel.colors
|
|||
: scale-rgb ( rgba -- n )
|
||||
[ red>> scale ] [ green>> scale ] [ blue>> scale ] tri 3byte-array ;
|
||||
|
||||
: sat 0.85 ; inline
|
||||
: val 0.85 ; inline
|
||||
CONSTANT: sat 0.85
|
||||
CONSTANT: val 0.85
|
||||
|
||||
: <color-map> ( nb-cols -- map )
|
||||
dup [
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
IN: benchmark.mandel.params
|
||||
|
||||
: max-color 360 ; inline
|
||||
: zoom-fact 0.8 ; inline
|
||||
: width 640 ; inline
|
||||
: height 480 ; inline
|
||||
: max-iterations 40 ; inline
|
||||
: center -0.65 ; inline
|
||||
CONSTANT: max-color 360
|
||||
CONSTANT: zoom-fact 0.8
|
||||
CONSTANT: width 640
|
||||
CONSTANT: height 480
|
||||
CONSTANT: max-iterations 40
|
||||
CONSTANT: center -0.65
|
||||
|
|
|
@ -6,7 +6,7 @@ sequences hints arrays ;
|
|||
IN: benchmark.nbody
|
||||
|
||||
: solar-mass ( -- x ) 4 pi sq * ; inline
|
||||
: days-per-year 365.24 ; inline
|
||||
CONSTANT: days-per-year 365.24
|
||||
|
||||
TUPLE: body
|
||||
{ location double-array }
|
||||
|
|
|
@ -16,13 +16,13 @@ IN: benchmark.raytracer
|
|||
0.5345224838248488
|
||||
} ; inline
|
||||
|
||||
: oversampling 4 ; inline
|
||||
CONSTANT: oversampling 4
|
||||
|
||||
: levels 3 ; inline
|
||||
CONSTANT: levels 3
|
||||
|
||||
: size 200 ; inline
|
||||
CONSTANT: size 200
|
||||
|
||||
: delta 1.4901161193847656E-8 ; inline
|
||||
CONSTANT: delta 1.4901161193847656E-8
|
||||
|
||||
TUPLE: ray { orig double-array read-only } { dir double-array read-only } ;
|
||||
|
||||
|
@ -88,7 +88,7 @@ TUPLE: group < sphere { objs array read-only } ;
|
|||
M: group intersect-scene ( hit ray group -- hit )
|
||||
[ drop objs>> [ intersect-scene ] with each ] if-ray-sphere ;
|
||||
|
||||
: initial-hit T{ hit f double-array{ 0.0 0.0 0.0 } 1/0. } ; inline
|
||||
CONSTANT: initial-hit T{ hit f double-array{ 0.0 0.0 0.0 } 1/0. }
|
||||
|
||||
: initial-intersect ( ray scene -- hit )
|
||||
[ initial-hit ] 2dip intersect-scene ; inline
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: arrays kernel math memoize sequences math.bitwise
|
|||
locals ;
|
||||
IN: crypto.aes
|
||||
|
||||
: AES_BLOCK_SIZE 16 ; inline
|
||||
CONSTANT: AES_BLOCK_SIZE 16
|
||||
|
||||
: sbox ( -- array )
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@ C: <rsa> rsa
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: public-key 65537 ; inline
|
||||
CONSTANT: public-key 65537
|
||||
|
||||
: rsa-primes ( numbits -- p q )
|
||||
2/ 2 unique-primes first2 ;
|
||||
|
|
|
@ -10,9 +10,9 @@ IN: curses
|
|||
SYMBOL: curses-windows
|
||||
SYMBOL: current-window
|
||||
|
||||
: ERR -1 ; inline
|
||||
: FALSE 0 ; inline
|
||||
: TRUE 1 ; inline
|
||||
CONSTANT: ERR -1
|
||||
CONSTANT: FALSE 0
|
||||
CONSTANT: TRUE 1
|
||||
: >BOOLEAN ( n -- TRUE/FALSE ) >boolean TRUE FALSE ? ; inline
|
||||
|
||||
ERROR: duplicate-window window ;
|
||||
|
|
|
@ -18,7 +18,7 @@ TYPEDEF: chtype attr_t
|
|||
TYPEDEF: short NCURSES_SIZE_T
|
||||
TYPEDEF: ushort wchar_t
|
||||
|
||||
: CCHARW_MAX 5 ; inline
|
||||
CONSTANT: CCHARW_MAX 5
|
||||
|
||||
C-STRUCT: cchar_t
|
||||
{ "attr_t" "attr" }
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
! Copyright (C) 2008 Your name.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test fuel ;
|
||||
IN: fuel.tests
|
|
@ -21,33 +21,33 @@ iokit-game-input-backend game-input-backend set-global
|
|||
[ &CFRelease NSFastEnumeration>vector ] [ f ] if*
|
||||
] with-destructors ;
|
||||
|
||||
: game-devices-matching-seq
|
||||
CONSTANT: game-devices-matching-seq
|
||||
{
|
||||
H{ { "DeviceUsage" 4 } { "DeviceUsagePage" 1 } } ! joysticks
|
||||
H{ { "DeviceUsage" 5 } { "DeviceUsagePage" 1 } } ! gamepads
|
||||
H{ { "DeviceUsage" 6 } { "DeviceUsagePage" 1 } } ! keyboards
|
||||
} ; inline
|
||||
}
|
||||
|
||||
: buttons-matching-hash
|
||||
H{ { "UsagePage" 9 } { "Type" 2 } } ; inline
|
||||
: keys-matching-hash
|
||||
H{ { "UsagePage" 7 } { "Type" 2 } } ; inline
|
||||
: x-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 30 } { "Type" 1 } } ; inline
|
||||
: y-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 31 } { "Type" 1 } } ; inline
|
||||
: z-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 32 } { "Type" 1 } } ; inline
|
||||
: rx-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 33 } { "Type" 1 } } ; inline
|
||||
: ry-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 34 } { "Type" 1 } } ; inline
|
||||
: rz-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 35 } { "Type" 1 } } ; inline
|
||||
: slider-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 36 } { "Type" 1 } } ; inline
|
||||
: hat-switch-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 39 } { "Type" 1 } } ; inline
|
||||
CONSTANT: buttons-matching-hash
|
||||
H{ { "UsagePage" 9 } { "Type" 2 } }
|
||||
CONSTANT: keys-matching-hash
|
||||
H{ { "UsagePage" 7 } { "Type" 2 } }
|
||||
CONSTANT: x-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 30 } { "Type" 1 } }
|
||||
CONSTANT: y-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 31 } { "Type" 1 } }
|
||||
CONSTANT: z-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 32 } { "Type" 1 } }
|
||||
CONSTANT: rx-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 33 } { "Type" 1 } }
|
||||
CONSTANT: ry-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 34 } { "Type" 1 } }
|
||||
CONSTANT: rz-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 35 } { "Type" 1 } }
|
||||
CONSTANT: slider-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 36 } { "Type" 1 } }
|
||||
CONSTANT: hat-switch-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 39 } { "Type" 1 } }
|
||||
|
||||
: device-elements-matching ( device matching-hash -- vector )
|
||||
[
|
||||
|
|
|
@ -1,175 +1,175 @@
|
|||
IN: game-input.scancodes
|
||||
|
||||
: key-undefined HEX: 0000 ; inline
|
||||
: key-error-roll-over HEX: 0001 ; inline
|
||||
: key-error-post-fail HEX: 0002 ; inline
|
||||
: key-error-undefined HEX: 0003 ; inline
|
||||
: key-a HEX: 0004 ; inline
|
||||
: key-b HEX: 0005 ; inline
|
||||
: key-c HEX: 0006 ; inline
|
||||
: key-d HEX: 0007 ; inline
|
||||
: key-e HEX: 0008 ; inline
|
||||
: key-f HEX: 0009 ; inline
|
||||
: key-g HEX: 000a ; inline
|
||||
: key-h HEX: 000b ; inline
|
||||
: key-i HEX: 000c ; inline
|
||||
: key-j HEX: 000d ; inline
|
||||
: key-k HEX: 000e ; inline
|
||||
: key-l HEX: 000f ; inline
|
||||
: key-m HEX: 0010 ; inline
|
||||
: key-n HEX: 0011 ; inline
|
||||
: key-o HEX: 0012 ; inline
|
||||
: key-p HEX: 0013 ; inline
|
||||
: key-q HEX: 0014 ; inline
|
||||
: key-r HEX: 0015 ; inline
|
||||
: key-s HEX: 0016 ; inline
|
||||
: key-t HEX: 0017 ; inline
|
||||
: key-u HEX: 0018 ; inline
|
||||
: key-v HEX: 0019 ; inline
|
||||
: key-w HEX: 001a ; inline
|
||||
: key-x HEX: 001b ; inline
|
||||
: key-y HEX: 001c ; inline
|
||||
: key-z HEX: 001d ; inline
|
||||
: key-1 HEX: 001e ; inline
|
||||
: key-2 HEX: 001f ; inline
|
||||
: key-3 HEX: 0020 ; inline
|
||||
: key-4 HEX: 0021 ; inline
|
||||
: key-5 HEX: 0022 ; inline
|
||||
: key-6 HEX: 0023 ; inline
|
||||
: key-7 HEX: 0024 ; inline
|
||||
: key-8 HEX: 0025 ; inline
|
||||
: key-9 HEX: 0026 ; inline
|
||||
: key-0 HEX: 0027 ; inline
|
||||
: key-return HEX: 0028 ; inline
|
||||
: key-escape HEX: 0029 ; inline
|
||||
: key-backspace HEX: 002a ; inline
|
||||
: key-tab HEX: 002b ; inline
|
||||
: key-space HEX: 002c ; inline
|
||||
: key-- HEX: 002d ; inline
|
||||
: key-= HEX: 002e ; inline
|
||||
: key-[ HEX: 002f ; inline
|
||||
: key-] HEX: 0030 ; inline
|
||||
: key-\ HEX: 0031 ; inline
|
||||
: key-#-non-us HEX: 0032 ; inline
|
||||
: key-; HEX: 0033 ; inline
|
||||
: key-' HEX: 0034 ; inline
|
||||
: key-` HEX: 0035 ; inline
|
||||
: key-, HEX: 0036 ; inline
|
||||
: key-. HEX: 0037 ; inline
|
||||
: key-/ HEX: 0038 ; inline
|
||||
: key-caps-lock HEX: 0039 ; inline
|
||||
: key-f1 HEX: 003a ; inline
|
||||
: key-f2 HEX: 003b ; inline
|
||||
: key-f3 HEX: 003c ; inline
|
||||
: key-f4 HEX: 003d ; inline
|
||||
: key-f5 HEX: 003e ; inline
|
||||
: key-f6 HEX: 003f ; inline
|
||||
: key-f7 HEX: 0040 ; inline
|
||||
: key-f8 HEX: 0041 ; inline
|
||||
: key-f9 HEX: 0042 ; inline
|
||||
: key-f10 HEX: 0043 ; inline
|
||||
: key-f11 HEX: 0044 ; inline
|
||||
: key-f12 HEX: 0045 ; inline
|
||||
: key-print-screen HEX: 0046 ; inline
|
||||
: key-scroll-lock HEX: 0047 ; inline
|
||||
: key-pause HEX: 0048 ; inline
|
||||
: key-insert HEX: 0049 ; inline
|
||||
: key-home HEX: 004a ; inline
|
||||
: key-page-up HEX: 004b ; inline
|
||||
: key-delete HEX: 004c ; inline
|
||||
: key-end HEX: 004d ; inline
|
||||
: key-page-down HEX: 004e ; inline
|
||||
: key-right-arrow HEX: 004f ; inline
|
||||
: key-left-arrow HEX: 0050 ; inline
|
||||
: key-down-arrow HEX: 0051 ; inline
|
||||
: key-up-arrow HEX: 0052 ; inline
|
||||
: key-keypad-numlock HEX: 0053 ; inline
|
||||
: key-keypad-/ HEX: 0054 ; inline
|
||||
: key-keypad-* HEX: 0055 ; inline
|
||||
: key-keypad-- HEX: 0056 ; inline
|
||||
: key-keypad-+ HEX: 0057 ; inline
|
||||
: key-keypad-enter HEX: 0058 ; inline
|
||||
: key-keypad-1 HEX: 0059 ; inline
|
||||
: key-keypad-2 HEX: 005a ; inline
|
||||
: key-keypad-3 HEX: 005b ; inline
|
||||
: key-keypad-4 HEX: 005c ; inline
|
||||
: key-keypad-5 HEX: 005d ; inline
|
||||
: key-keypad-6 HEX: 005e ; inline
|
||||
: key-keypad-7 HEX: 005f ; inline
|
||||
: key-keypad-8 HEX: 0060 ; inline
|
||||
: key-keypad-9 HEX: 0061 ; inline
|
||||
: key-keypad-0 HEX: 0062 ; inline
|
||||
: key-keypad-. HEX: 0063 ; inline
|
||||
: key-\-non-us HEX: 0064 ; inline
|
||||
: key-application HEX: 0065 ; inline
|
||||
: key-power HEX: 0066 ; inline
|
||||
: key-keypad-= HEX: 0067 ; inline
|
||||
: key-f13 HEX: 0068 ; inline
|
||||
: key-f14 HEX: 0069 ; inline
|
||||
: key-f15 HEX: 006a ; inline
|
||||
: key-f16 HEX: 006b ; inline
|
||||
: key-f17 HEX: 006c ; inline
|
||||
: key-f18 HEX: 006d ; inline
|
||||
: key-f19 HEX: 006e ; inline
|
||||
: key-f20 HEX: 006f ; inline
|
||||
: key-f21 HEX: 0070 ; inline
|
||||
: key-f22 HEX: 0071 ; inline
|
||||
: key-f23 HEX: 0072 ; inline
|
||||
: key-f24 HEX: 0073 ; inline
|
||||
: key-execute HEX: 0074 ; inline
|
||||
: key-help HEX: 0075 ; inline
|
||||
: key-menu HEX: 0076 ; inline
|
||||
: key-select HEX: 0077 ; inline
|
||||
: key-stop HEX: 0078 ; inline
|
||||
: key-again HEX: 0079 ; inline
|
||||
: key-undo HEX: 007a ; inline
|
||||
: key-cut HEX: 007b ; inline
|
||||
: key-copy HEX: 007c ; inline
|
||||
: key-paste HEX: 007d ; inline
|
||||
: key-find HEX: 007e ; inline
|
||||
: key-mute HEX: 007f ; inline
|
||||
: key-volume-up HEX: 0080 ; inline
|
||||
: key-volume-down HEX: 0081 ; inline
|
||||
: key-locking-caps-lock HEX: 0082 ; inline
|
||||
: key-locking-num-lock HEX: 0083 ; inline
|
||||
: key-locking-scroll-lock HEX: 0084 ; inline
|
||||
: key-keypad-, HEX: 0085 ; inline
|
||||
: key-keypad-=-as-400 HEX: 0086 ; inline
|
||||
: key-international-1 HEX: 0087 ; inline
|
||||
: key-international-2 HEX: 0088 ; inline
|
||||
: key-international-3 HEX: 0089 ; inline
|
||||
: key-international-4 HEX: 008a ; inline
|
||||
: key-international-5 HEX: 008b ; inline
|
||||
: key-international-6 HEX: 008c ; inline
|
||||
: key-international-7 HEX: 008d ; inline
|
||||
: key-international-8 HEX: 008e ; inline
|
||||
: key-international-9 HEX: 008f ; inline
|
||||
: key-lang-1 HEX: 0090 ; inline
|
||||
: key-lang-2 HEX: 0091 ; inline
|
||||
: key-lang-3 HEX: 0092 ; inline
|
||||
: key-lang-4 HEX: 0093 ; inline
|
||||
: key-lang-5 HEX: 0094 ; inline
|
||||
: key-lang-6 HEX: 0095 ; inline
|
||||
: key-lang-7 HEX: 0096 ; inline
|
||||
: key-lang-8 HEX: 0097 ; inline
|
||||
: key-lang-9 HEX: 0098 ; inline
|
||||
: key-alternate-erase HEX: 0099 ; inline
|
||||
: key-sysreq HEX: 009a ; inline
|
||||
: key-cancel HEX: 009b ; inline
|
||||
: key-clear HEX: 009c ; inline
|
||||
: key-prior HEX: 009d ; inline
|
||||
: key-enter HEX: 009e ; inline
|
||||
: key-separator HEX: 009f ; inline
|
||||
: key-out HEX: 00a0 ; inline
|
||||
: key-oper HEX: 00a1 ; inline
|
||||
: key-clear-again HEX: 00a2 ; inline
|
||||
: key-crsel-props HEX: 00a3 ; inline
|
||||
: key-exsel HEX: 00a4 ; inline
|
||||
: key-left-control HEX: 00e0 ; inline
|
||||
: key-left-shift HEX: 00e1 ; inline
|
||||
: key-left-alt HEX: 00e2 ; inline
|
||||
: key-left-gui HEX: 00e3 ; inline
|
||||
: key-right-control HEX: 00e4 ; inline
|
||||
: key-right-shift HEX: 00e5 ; inline
|
||||
: key-right-alt HEX: 00e6 ; inline
|
||||
: key-right-gui HEX: 00e7 ; inline
|
||||
CONSTANT: key-undefined HEX: 0000
|
||||
CONSTANT: key-error-roll-over HEX: 0001
|
||||
CONSTANT: key-error-post-fail HEX: 0002
|
||||
CONSTANT: key-error-undefined HEX: 0003
|
||||
CONSTANT: key-a HEX: 0004
|
||||
CONSTANT: key-b HEX: 0005
|
||||
CONSTANT: key-c HEX: 0006
|
||||
CONSTANT: key-d HEX: 0007
|
||||
CONSTANT: key-e HEX: 0008
|
||||
CONSTANT: key-f HEX: 0009
|
||||
CONSTANT: key-g HEX: 000a
|
||||
CONSTANT: key-h HEX: 000b
|
||||
CONSTANT: key-i HEX: 000c
|
||||
CONSTANT: key-j HEX: 000d
|
||||
CONSTANT: key-k HEX: 000e
|
||||
CONSTANT: key-l HEX: 000f
|
||||
CONSTANT: key-m HEX: 0010
|
||||
CONSTANT: key-n HEX: 0011
|
||||
CONSTANT: key-o HEX: 0012
|
||||
CONSTANT: key-p HEX: 0013
|
||||
CONSTANT: key-q HEX: 0014
|
||||
CONSTANT: key-r HEX: 0015
|
||||
CONSTANT: key-s HEX: 0016
|
||||
CONSTANT: key-t HEX: 0017
|
||||
CONSTANT: key-u HEX: 0018
|
||||
CONSTANT: key-v HEX: 0019
|
||||
CONSTANT: key-w HEX: 001a
|
||||
CONSTANT: key-x HEX: 001b
|
||||
CONSTANT: key-y HEX: 001c
|
||||
CONSTANT: key-z HEX: 001d
|
||||
CONSTANT: key-1 HEX: 001e
|
||||
CONSTANT: key-2 HEX: 001f
|
||||
CONSTANT: key-3 HEX: 0020
|
||||
CONSTANT: key-4 HEX: 0021
|
||||
CONSTANT: key-5 HEX: 0022
|
||||
CONSTANT: key-6 HEX: 0023
|
||||
CONSTANT: key-7 HEX: 0024
|
||||
CONSTANT: key-8 HEX: 0025
|
||||
CONSTANT: key-9 HEX: 0026
|
||||
CONSTANT: key-0 HEX: 0027
|
||||
CONSTANT: key-return HEX: 0028
|
||||
CONSTANT: key-escape HEX: 0029
|
||||
CONSTANT: key-backspace HEX: 002a
|
||||
CONSTANT: key-tab HEX: 002b
|
||||
CONSTANT: key-space HEX: 002c
|
||||
CONSTANT: key-- HEX: 002d
|
||||
CONSTANT: key-= HEX: 002e
|
||||
CONSTANT: key-[ HEX: 002f
|
||||
CONSTANT: key-] HEX: 0030
|
||||
CONSTANT: key-\ HEX: 0031
|
||||
CONSTANT: key-#-non-us HEX: 0032
|
||||
CONSTANT: key-; HEX: 0033
|
||||
CONSTANT: key-' HEX: 0034
|
||||
CONSTANT: key-` HEX: 0035
|
||||
CONSTANT: key-, HEX: 0036
|
||||
CONSTANT: key-. HEX: 0037
|
||||
CONSTANT: key-/ HEX: 0038
|
||||
CONSTANT: key-caps-lock HEX: 0039
|
||||
CONSTANT: key-f1 HEX: 003a
|
||||
CONSTANT: key-f2 HEX: 003b
|
||||
CONSTANT: key-f3 HEX: 003c
|
||||
CONSTANT: key-f4 HEX: 003d
|
||||
CONSTANT: key-f5 HEX: 003e
|
||||
CONSTANT: key-f6 HEX: 003f
|
||||
CONSTANT: key-f7 HEX: 0040
|
||||
CONSTANT: key-f8 HEX: 0041
|
||||
CONSTANT: key-f9 HEX: 0042
|
||||
CONSTANT: key-f10 HEX: 0043
|
||||
CONSTANT: key-f11 HEX: 0044
|
||||
CONSTANT: key-f12 HEX: 0045
|
||||
CONSTANT: key-print-screen HEX: 0046
|
||||
CONSTANT: key-scroll-lock HEX: 0047
|
||||
CONSTANT: key-pause HEX: 0048
|
||||
CONSTANT: key-insert HEX: 0049
|
||||
CONSTANT: key-home HEX: 004a
|
||||
CONSTANT: key-page-up HEX: 004b
|
||||
CONSTANT: key-delete HEX: 004c
|
||||
CONSTANT: key-end HEX: 004d
|
||||
CONSTANT: key-page-down HEX: 004e
|
||||
CONSTANT: key-right-arrow HEX: 004f
|
||||
CONSTANT: key-left-arrow HEX: 0050
|
||||
CONSTANT: key-down-arrow HEX: 0051
|
||||
CONSTANT: key-up-arrow HEX: 0052
|
||||
CONSTANT: key-keypad-numlock HEX: 0053
|
||||
CONSTANT: key-keypad-/ HEX: 0054
|
||||
CONSTANT: key-keypad-* HEX: 0055
|
||||
CONSTANT: key-keypad-- HEX: 0056
|
||||
CONSTANT: key-keypad-+ HEX: 0057
|
||||
CONSTANT: key-keypad-enter HEX: 0058
|
||||
CONSTANT: key-keypad-1 HEX: 0059
|
||||
CONSTANT: key-keypad-2 HEX: 005a
|
||||
CONSTANT: key-keypad-3 HEX: 005b
|
||||
CONSTANT: key-keypad-4 HEX: 005c
|
||||
CONSTANT: key-keypad-5 HEX: 005d
|
||||
CONSTANT: key-keypad-6 HEX: 005e
|
||||
CONSTANT: key-keypad-7 HEX: 005f
|
||||
CONSTANT: key-keypad-8 HEX: 0060
|
||||
CONSTANT: key-keypad-9 HEX: 0061
|
||||
CONSTANT: key-keypad-0 HEX: 0062
|
||||
CONSTANT: key-keypad-. HEX: 0063
|
||||
CONSTANT: key-\-non-us HEX: 0064
|
||||
CONSTANT: key-application HEX: 0065
|
||||
CONSTANT: key-power HEX: 0066
|
||||
CONSTANT: key-keypad-= HEX: 0067
|
||||
CONSTANT: key-f13 HEX: 0068
|
||||
CONSTANT: key-f14 HEX: 0069
|
||||
CONSTANT: key-f15 HEX: 006a
|
||||
CONSTANT: key-f16 HEX: 006b
|
||||
CONSTANT: key-f17 HEX: 006c
|
||||
CONSTANT: key-f18 HEX: 006d
|
||||
CONSTANT: key-f19 HEX: 006e
|
||||
CONSTANT: key-f20 HEX: 006f
|
||||
CONSTANT: key-f21 HEX: 0070
|
||||
CONSTANT: key-f22 HEX: 0071
|
||||
CONSTANT: key-f23 HEX: 0072
|
||||
CONSTANT: key-f24 HEX: 0073
|
||||
CONSTANT: key-execute HEX: 0074
|
||||
CONSTANT: key-help HEX: 0075
|
||||
CONSTANT: key-menu HEX: 0076
|
||||
CONSTANT: key-select HEX: 0077
|
||||
CONSTANT: key-stop HEX: 0078
|
||||
CONSTANT: key-again HEX: 0079
|
||||
CONSTANT: key-undo HEX: 007a
|
||||
CONSTANT: key-cut HEX: 007b
|
||||
CONSTANT: key-copy HEX: 007c
|
||||
CONSTANT: key-paste HEX: 007d
|
||||
CONSTANT: key-find HEX: 007e
|
||||
CONSTANT: key-mute HEX: 007f
|
||||
CONSTANT: key-volume-up HEX: 0080
|
||||
CONSTANT: key-volume-down HEX: 0081
|
||||
CONSTANT: key-locking-caps-lock HEX: 0082
|
||||
CONSTANT: key-locking-num-lock HEX: 0083
|
||||
CONSTANT: key-locking-scroll-lock HEX: 0084
|
||||
CONSTANT: key-keypad-, HEX: 0085
|
||||
CONSTANT: key-keypad-=-as-400 HEX: 0086
|
||||
CONSTANT: key-international-1 HEX: 0087
|
||||
CONSTANT: key-international-2 HEX: 0088
|
||||
CONSTANT: key-international-3 HEX: 0089
|
||||
CONSTANT: key-international-4 HEX: 008a
|
||||
CONSTANT: key-international-5 HEX: 008b
|
||||
CONSTANT: key-international-6 HEX: 008c
|
||||
CONSTANT: key-international-7 HEX: 008d
|
||||
CONSTANT: key-international-8 HEX: 008e
|
||||
CONSTANT: key-international-9 HEX: 008f
|
||||
CONSTANT: key-lang-1 HEX: 0090
|
||||
CONSTANT: key-lang-2 HEX: 0091
|
||||
CONSTANT: key-lang-3 HEX: 0092
|
||||
CONSTANT: key-lang-4 HEX: 0093
|
||||
CONSTANT: key-lang-5 HEX: 0094
|
||||
CONSTANT: key-lang-6 HEX: 0095
|
||||
CONSTANT: key-lang-7 HEX: 0096
|
||||
CONSTANT: key-lang-8 HEX: 0097
|
||||
CONSTANT: key-lang-9 HEX: 0098
|
||||
CONSTANT: key-alternate-erase HEX: 0099
|
||||
CONSTANT: key-sysreq HEX: 009a
|
||||
CONSTANT: key-cancel HEX: 009b
|
||||
CONSTANT: key-clear HEX: 009c
|
||||
CONSTANT: key-prior HEX: 009d
|
||||
CONSTANT: key-enter HEX: 009e
|
||||
CONSTANT: key-separator HEX: 009f
|
||||
CONSTANT: key-out HEX: 00a0
|
||||
CONSTANT: key-oper HEX: 00a1
|
||||
CONSTANT: key-clear-again HEX: 00a2
|
||||
CONSTANT: key-crsel-props HEX: 00a3
|
||||
CONSTANT: key-exsel HEX: 00a4
|
||||
CONSTANT: key-left-control HEX: 00e0
|
||||
CONSTANT: key-left-shift HEX: 00e1
|
||||
CONSTANT: key-left-alt HEX: 00e2
|
||||
CONSTANT: key-left-gui HEX: 00e3
|
||||
CONSTANT: key-right-control HEX: 00e4
|
||||
CONSTANT: key-right-shift HEX: 00e5
|
||||
CONSTANT: key-right-alt HEX: 00e6
|
||||
CONSTANT: key-right-gui HEX: 00e7
|
||||
|
|
|
@ -14,11 +14,8 @@ ERROR: local-not-defined name ;
|
|||
M: local-not-defined summary
|
||||
drop "local is not defined" ;
|
||||
|
||||
: at? ( key assoc -- value/key ? )
|
||||
dupd at* [ nip t ] [ drop f ] if ;
|
||||
|
||||
: >local-word ( string -- word )
|
||||
locals get at? [ local-not-defined ] unless ;
|
||||
locals get ?at [ local-not-defined ] unless ;
|
||||
|
||||
: select-op ( string -- word )
|
||||
{
|
||||
|
|
|
@ -14,8 +14,10 @@ M: invalid-baud summary ( invalid-baud -- string )
|
|||
"Baud rate " " not supported" surround ;
|
||||
|
||||
HOOK: lookup-baud os ( m -- n )
|
||||
HOOK: open-serial os ( serial -- stream )
|
||||
HOOK: open-serial os ( serial -- serial' )
|
||||
M: serial dispose ( serial -- ) stream>> dispose ;
|
||||
|
||||
{
|
||||
{ [ os unix? ] [ "io.serial.unix" ] }
|
||||
{ [ os windows? ] [ "io.serial.windows" ] }
|
||||
} cond require
|
||||
|
|
|
@ -10,77 +10,77 @@ M: bsd lookup-baud ( m -- n )
|
|||
230400 460800 921600
|
||||
} member? [ invalid-baud ] unless ;
|
||||
|
||||
: TCSANOW 0 ; inline
|
||||
: TCSADRAIN 1 ; inline
|
||||
: TCSAFLUSH 2 ; inline
|
||||
: TCSASOFT HEX: 10 ; inline
|
||||
CONSTANT: TCSANOW 0
|
||||
CONSTANT: TCSADRAIN 1
|
||||
CONSTANT: TCSAFLUSH 2
|
||||
CONSTANT: TCSASOFT HEX: 10
|
||||
|
||||
: TCIFLUSH 1 ; inline
|
||||
: TCOFLUSH 2 ; inline
|
||||
: TCIOFLUSH 3 ; inline
|
||||
: TCOOFF 1 ; inline
|
||||
: TCOON 2 ; inline
|
||||
: TCIOFF 3 ; inline
|
||||
: TCION 4 ; inline
|
||||
CONSTANT: TCIFLUSH 1
|
||||
CONSTANT: TCOFLUSH 2
|
||||
CONSTANT: TCIOFLUSH 3
|
||||
CONSTANT: TCOOFF 1
|
||||
CONSTANT: TCOON 2
|
||||
CONSTANT: TCIOFF 3
|
||||
CONSTANT: TCION 4
|
||||
|
||||
! iflags
|
||||
: IGNBRK HEX: 00000001 ; inline
|
||||
: BRKINT HEX: 00000002 ; inline
|
||||
: IGNPAR HEX: 00000004 ; inline
|
||||
: PARMRK HEX: 00000008 ; inline
|
||||
: INPCK HEX: 00000010 ; inline
|
||||
: ISTRIP HEX: 00000020 ; inline
|
||||
: INLCR HEX: 00000040 ; inline
|
||||
: IGNCR HEX: 00000080 ; inline
|
||||
: ICRNL HEX: 00000100 ; inline
|
||||
: IXON HEX: 00000200 ; inline
|
||||
: IXOFF HEX: 00000400 ; inline
|
||||
: IXANY HEX: 00000800 ; inline
|
||||
: IMAXBEL HEX: 00002000 ; inline
|
||||
: IUTF8 HEX: 00004000 ; inline
|
||||
CONSTANT: IGNBRK HEX: 00000001
|
||||
CONSTANT: BRKINT HEX: 00000002
|
||||
CONSTANT: IGNPAR HEX: 00000004
|
||||
CONSTANT: PARMRK HEX: 00000008
|
||||
CONSTANT: INPCK HEX: 00000010
|
||||
CONSTANT: ISTRIP HEX: 00000020
|
||||
CONSTANT: INLCR HEX: 00000040
|
||||
CONSTANT: IGNCR HEX: 00000080
|
||||
CONSTANT: ICRNL HEX: 00000100
|
||||
CONSTANT: IXON HEX: 00000200
|
||||
CONSTANT: IXOFF HEX: 00000400
|
||||
CONSTANT: IXANY HEX: 00000800
|
||||
CONSTANT: IMAXBEL HEX: 00002000
|
||||
CONSTANT: IUTF8 HEX: 00004000
|
||||
|
||||
! oflags
|
||||
: OPOST HEX: 00000001 ; inline
|
||||
: ONLCR HEX: 00000002 ; inline
|
||||
: OXTABS HEX: 00000004 ; inline
|
||||
: ONOEOT HEX: 00000008 ; inline
|
||||
CONSTANT: OPOST HEX: 00000001
|
||||
CONSTANT: ONLCR HEX: 00000002
|
||||
CONSTANT: OXTABS HEX: 00000004
|
||||
CONSTANT: ONOEOT HEX: 00000008
|
||||
|
||||
! cflags
|
||||
: CIGNORE HEX: 00000001 ; inline
|
||||
: CSIZE HEX: 00000300 ; inline
|
||||
: CS5 HEX: 00000000 ; inline
|
||||
: CS6 HEX: 00000100 ; inline
|
||||
: CS7 HEX: 00000200 ; inline
|
||||
: CS8 HEX: 00000300 ; inline
|
||||
: CSTOPB HEX: 00000400 ; inline
|
||||
: CREAD HEX: 00000800 ; inline
|
||||
: PARENB HEX: 00001000 ; inline
|
||||
: PARODD HEX: 00002000 ; inline
|
||||
: HUPCL HEX: 00004000 ; inline
|
||||
: CLOCAL HEX: 00008000 ; inline
|
||||
: CCTS_OFLOW HEX: 00010000 ; inline
|
||||
: CRTS_IFLOW HEX: 00020000 ; inline
|
||||
: CRTSCTS { CCTS_OFLOW CRTS_IFLOW } flags ; inline
|
||||
: CDTR_IFLOW HEX: 00040000 ; inline
|
||||
: CDSR_OFLOW HEX: 00080000 ; inline
|
||||
: CCAR_OFLOW HEX: 00100000 ; inline
|
||||
: MDMBUF HEX: 00100000 ; inline
|
||||
CONSTANT: CIGNORE HEX: 00000001
|
||||
CONSTANT: CSIZE HEX: 00000300
|
||||
CONSTANT: CS5 HEX: 00000000
|
||||
CONSTANT: CS6 HEX: 00000100
|
||||
CONSTANT: CS7 HEX: 00000200
|
||||
CONSTANT: CS8 HEX: 00000300
|
||||
CONSTANT: CSTOPB HEX: 00000400
|
||||
CONSTANT: CREAD HEX: 00000800
|
||||
CONSTANT: PARENB HEX: 00001000
|
||||
CONSTANT: PARODD HEX: 00002000
|
||||
CONSTANT: HUPCL HEX: 00004000
|
||||
CONSTANT: CLOCAL HEX: 00008000
|
||||
CONSTANT: CCTS_OFLOW HEX: 00010000
|
||||
CONSTANT: CRTS_IFLOW HEX: 00020000
|
||||
: CRTSCTS ( -- n ) { CCTS_OFLOW CRTS_IFLOW } flags ; inline
|
||||
CONSTANT: CDTR_IFLOW HEX: 00040000
|
||||
CONSTANT: CDSR_OFLOW HEX: 00080000
|
||||
CONSTANT: CCAR_OFLOW HEX: 00100000
|
||||
CONSTANT: MDMBUF HEX: 00100000
|
||||
|
||||
! lflags
|
||||
: ECHOKE HEX: 00000001 ; inline
|
||||
: ECHOE HEX: 00000002 ; inline
|
||||
: ECHOK HEX: 00000004 ; inline
|
||||
: ECHO HEX: 00000008 ; inline
|
||||
: ECHONL HEX: 00000010 ; inline
|
||||
: ECHOPRT HEX: 00000020 ; inline
|
||||
: ECHOCTL HEX: 00000040 ; inline
|
||||
: ISIG HEX: 00000080 ; inline
|
||||
: ICANON HEX: 00000100 ; inline
|
||||
: ALTWERASE HEX: 00000200 ; inline
|
||||
: IEXTEN HEX: 00000400 ; inline
|
||||
: EXTPROC HEX: 00000800 ; inline
|
||||
: TOSTOP HEX: 00400000 ; inline
|
||||
: FLUSHO HEX: 00800000 ; inline
|
||||
: NOKERNINFO HEX: 02000000 ; inline
|
||||
: PENDIN HEX: 20000000 ; inline
|
||||
: NOFLSH HEX: 80000000 ; inline
|
||||
CONSTANT: ECHOKE HEX: 00000001
|
||||
CONSTANT: ECHOE HEX: 00000002
|
||||
CONSTANT: ECHOK HEX: 00000004
|
||||
CONSTANT: ECHO HEX: 00000008
|
||||
CONSTANT: ECHONL HEX: 00000010
|
||||
CONSTANT: ECHOPRT HEX: 00000020
|
||||
CONSTANT: ECHOCTL HEX: 00000040
|
||||
CONSTANT: ISIG HEX: 00000080
|
||||
CONSTANT: ICANON HEX: 00000100
|
||||
CONSTANT: ALTWERASE HEX: 00000200
|
||||
CONSTANT: IEXTEN HEX: 00000400
|
||||
CONSTANT: EXTPROC HEX: 00000800
|
||||
CONSTANT: TOSTOP HEX: 00400000
|
||||
CONSTANT: FLUSHO HEX: 00800000
|
||||
CONSTANT: NOKERNINFO HEX: 02000000
|
||||
CONSTANT: PENDIN HEX: 20000000
|
||||
CONSTANT: NOFLSH HEX: 80000000
|
||||
|
|
|
@ -3,96 +3,96 @@
|
|||
USING: assocs alien.syntax kernel io.serial system unix ;
|
||||
IN: io.serial.unix
|
||||
|
||||
: TCSANOW 0 ; inline
|
||||
: TCSADRAIN 1 ; inline
|
||||
: TCSAFLUSH 2 ; inline
|
||||
CONSTANT: TCSANOW 0
|
||||
CONSTANT: TCSADRAIN 1
|
||||
CONSTANT: TCSAFLUSH 2
|
||||
|
||||
: TCIFLUSH 0 ; inline
|
||||
: TCOFLUSH 1 ; inline
|
||||
: TCIOFLUSH 2 ; inline
|
||||
CONSTANT: TCIFLUSH 0
|
||||
CONSTANT: TCOFLUSH 1
|
||||
CONSTANT: TCIOFLUSH 2
|
||||
|
||||
: TCOOFF 0 ; inline
|
||||
: TCOON 1 ; inline
|
||||
: TCIOFF 2 ; inline
|
||||
: TCION 3 ; inline
|
||||
CONSTANT: TCOOFF 0
|
||||
CONSTANT: TCOON 1
|
||||
CONSTANT: TCIOFF 2
|
||||
CONSTANT: TCION 3
|
||||
|
||||
! iflag
|
||||
: IGNBRK OCT: 0000001 ; inline
|
||||
: BRKINT OCT: 0000002 ; inline
|
||||
: IGNPAR OCT: 0000004 ; inline
|
||||
: PARMRK OCT: 0000010 ; inline
|
||||
: INPCK OCT: 0000020 ; inline
|
||||
: ISTRIP OCT: 0000040 ; inline
|
||||
: INLCR OCT: 0000100 ; inline
|
||||
: IGNCR OCT: 0000200 ; inline
|
||||
: ICRNL OCT: 0000400 ; inline
|
||||
: IUCLC OCT: 0001000 ; inline
|
||||
: IXON OCT: 0002000 ; inline
|
||||
: IXANY OCT: 0004000 ; inline
|
||||
: IXOFF OCT: 0010000 ; inline
|
||||
: IMAXBEL OCT: 0020000 ; inline
|
||||
: IUTF8 OCT: 0040000 ; inline
|
||||
CONSTANT: IGNBRK OCT: 0000001
|
||||
CONSTANT: BRKINT OCT: 0000002
|
||||
CONSTANT: IGNPAR OCT: 0000004
|
||||
CONSTANT: PARMRK OCT: 0000010
|
||||
CONSTANT: INPCK OCT: 0000020
|
||||
CONSTANT: ISTRIP OCT: 0000040
|
||||
CONSTANT: INLCR OCT: 0000100
|
||||
CONSTANT: IGNCR OCT: 0000200
|
||||
CONSTANT: ICRNL OCT: 0000400
|
||||
CONSTANT: IUCLC OCT: 0001000
|
||||
CONSTANT: IXON OCT: 0002000
|
||||
CONSTANT: IXANY OCT: 0004000
|
||||
CONSTANT: IXOFF OCT: 0010000
|
||||
CONSTANT: IMAXBEL OCT: 0020000
|
||||
CONSTANT: IUTF8 OCT: 0040000
|
||||
|
||||
! oflag
|
||||
: OPOST OCT: 0000001 ; inline
|
||||
: OLCUC OCT: 0000002 ; inline
|
||||
: ONLCR OCT: 0000004 ; inline
|
||||
: OCRNL OCT: 0000010 ; inline
|
||||
: ONOCR OCT: 0000020 ; inline
|
||||
: ONLRET OCT: 0000040 ; inline
|
||||
: OFILL OCT: 0000100 ; inline
|
||||
: OFDEL OCT: 0000200 ; inline
|
||||
: NLDLY OCT: 0000400 ; inline
|
||||
: NL0 OCT: 0000000 ; inline
|
||||
: NL1 OCT: 0000400 ; inline
|
||||
: CRDLY OCT: 0003000 ; inline
|
||||
: CR0 OCT: 0000000 ; inline
|
||||
: CR1 OCT: 0001000 ; inline
|
||||
: CR2 OCT: 0002000 ; inline
|
||||
: CR3 OCT: 0003000 ; inline
|
||||
: TABDLY OCT: 0014000 ; inline
|
||||
: TAB0 OCT: 0000000 ; inline
|
||||
: TAB1 OCT: 0004000 ; inline
|
||||
: TAB2 OCT: 0010000 ; inline
|
||||
: TAB3 OCT: 0014000 ; inline
|
||||
: BSDLY OCT: 0020000 ; inline
|
||||
: BS0 OCT: 0000000 ; inline
|
||||
: BS1 OCT: 0020000 ; inline
|
||||
: FFDLY OCT: 0100000 ; inline
|
||||
: FF0 OCT: 0000000 ; inline
|
||||
: FF1 OCT: 0100000 ; inline
|
||||
CONSTANT: OPOST OCT: 0000001
|
||||
CONSTANT: OLCUC OCT: 0000002
|
||||
CONSTANT: ONLCR OCT: 0000004
|
||||
CONSTANT: OCRNL OCT: 0000010
|
||||
CONSTANT: ONOCR OCT: 0000020
|
||||
CONSTANT: ONLRET OCT: 0000040
|
||||
CONSTANT: OFILL OCT: 0000100
|
||||
CONSTANT: OFDEL OCT: 0000200
|
||||
CONSTANT: NLDLY OCT: 0000400
|
||||
CONSTANT: NL0 OCT: 0000000
|
||||
CONSTANT: NL1 OCT: 0000400
|
||||
CONSTANT: CRDLY OCT: 0003000
|
||||
CONSTANT: CR0 OCT: 0000000
|
||||
CONSTANT: CR1 OCT: 0001000
|
||||
CONSTANT: CR2 OCT: 0002000
|
||||
CONSTANT: CR3 OCT: 0003000
|
||||
CONSTANT: TABDLY OCT: 0014000
|
||||
CONSTANT: TAB0 OCT: 0000000
|
||||
CONSTANT: TAB1 OCT: 0004000
|
||||
CONSTANT: TAB2 OCT: 0010000
|
||||
CONSTANT: TAB3 OCT: 0014000
|
||||
CONSTANT: BSDLY OCT: 0020000
|
||||
CONSTANT: BS0 OCT: 0000000
|
||||
CONSTANT: BS1 OCT: 0020000
|
||||
CONSTANT: FFDLY OCT: 0100000
|
||||
CONSTANT: FF0 OCT: 0000000
|
||||
CONSTANT: FF1 OCT: 0100000
|
||||
|
||||
! cflags
|
||||
: CSIZE OCT: 0000060 ; inline
|
||||
: CS5 OCT: 0000000 ; inline
|
||||
: CS6 OCT: 0000020 ; inline
|
||||
: CS7 OCT: 0000040 ; inline
|
||||
: CS8 OCT: 0000060 ; inline
|
||||
: CSTOPB OCT: 0000100 ; inline
|
||||
: CREAD OCT: 0000200 ; inline
|
||||
: PARENB OCT: 0000400 ; inline
|
||||
: PARODD OCT: 0001000 ; inline
|
||||
: HUPCL OCT: 0002000 ; inline
|
||||
: CLOCAL OCT: 0004000 ; inline
|
||||
: CIBAUD OCT: 002003600000 ; inline
|
||||
: CRTSCTS OCT: 020000000000 ; inline
|
||||
CONSTANT: CSIZE OCT: 0000060
|
||||
CONSTANT: CS5 OCT: 0000000
|
||||
CONSTANT: CS6 OCT: 0000020
|
||||
CONSTANT: CS7 OCT: 0000040
|
||||
CONSTANT: CS8 OCT: 0000060
|
||||
CONSTANT: CSTOPB OCT: 0000100
|
||||
CONSTANT: CREAD OCT: 0000200
|
||||
CONSTANT: PARENB OCT: 0000400
|
||||
CONSTANT: PARODD OCT: 0001000
|
||||
CONSTANT: HUPCL OCT: 0002000
|
||||
CONSTANT: CLOCAL OCT: 0004000
|
||||
CONSTANT: CIBAUD OCT: 002003600000
|
||||
CONSTANT: CRTSCTS OCT: 020000000000
|
||||
|
||||
! lflags
|
||||
: ISIG OCT: 0000001 ; inline
|
||||
: ICANON OCT: 0000002 ; inline
|
||||
: XCASE OCT: 0000004 ; inline
|
||||
: ECHO OCT: 0000010 ; inline
|
||||
: ECHOE OCT: 0000020 ; inline
|
||||
: ECHOK OCT: 0000040 ; inline
|
||||
: ECHONL OCT: 0000100 ; inline
|
||||
: NOFLSH OCT: 0000200 ; inline
|
||||
: TOSTOP OCT: 0000400 ; inline
|
||||
: ECHOCTL OCT: 0001000 ; inline
|
||||
: ECHOPRT OCT: 0002000 ; inline
|
||||
: ECHOKE OCT: 0004000 ; inline
|
||||
: FLUSHO OCT: 0010000 ; inline
|
||||
: PENDIN OCT: 0040000 ; inline
|
||||
: IEXTEN OCT: 0100000 ; inline
|
||||
CONSTANT: ISIG OCT: 0000001
|
||||
CONSTANT: ICANON OCT: 0000002
|
||||
CONSTANT: XCASE OCT: 0000004
|
||||
CONSTANT: ECHO OCT: 0000010
|
||||
CONSTANT: ECHOE OCT: 0000020
|
||||
CONSTANT: ECHOK OCT: 0000040
|
||||
CONSTANT: ECHONL OCT: 0000100
|
||||
CONSTANT: NOFLSH OCT: 0000200
|
||||
CONSTANT: TOSTOP OCT: 0000400
|
||||
CONSTANT: ECHOCTL OCT: 0001000
|
||||
CONSTANT: ECHOPRT OCT: 0002000
|
||||
CONSTANT: ECHOKE OCT: 0004000
|
||||
CONSTANT: FLUSHO OCT: 0010000
|
||||
CONSTANT: PENDIN OCT: 0040000
|
||||
CONSTANT: IEXTEN OCT: 0100000
|
||||
|
||||
M: linux lookup-baud ( n -- n )
|
||||
dup H{
|
||||
|
@ -127,4 +127,4 @@ M: linux lookup-baud ( n -- n )
|
|||
{ 3000000 OCT: 0010015 }
|
||||
{ 3500000 OCT: 0010016 }
|
||||
{ 4000000 OCT: 0010017 }
|
||||
} at* [ nip ] [ drop invalid-baud ] if ;
|
||||
} ?at [ invalid-baud ] unless ;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
USING: alien.syntax kernel sequences system ;
|
||||
IN: io.serial.unix.termios
|
||||
|
||||
: NCCS 20 ; inline
|
||||
CONSTANT: NCCS 20
|
||||
|
||||
TYPEDEF: uint tcflag_t
|
||||
TYPEDEF: uchar cc_t
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
USING: alien.syntax kernel system unix ;
|
||||
IN: io.serial.unix.termios
|
||||
|
||||
: NCCS 32 ; inline
|
||||
CONSTANT: NCCS 32
|
||||
|
||||
TYPEDEF: uchar cc_t
|
||||
TYPEDEF: uint speed_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel math.bitwise serial serial.unix ;
|
||||
USING: accessors kernel math.bitwise io.serial io.serial.unix ;
|
||||
IN: io.serial.unix
|
||||
|
||||
: serial-obj ( -- obj )
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien.c-types alien.syntax combinators io.ports
|
||||
io.streams.duplex io.unix.backend system kernel math math.bitwise
|
||||
vocabs.loader unix io.serial io.serial.unix.termios ;
|
||||
io.streams.duplex system kernel math math.bitwise
|
||||
vocabs.loader unix io.serial io.serial.unix.termios io.backend.unix ;
|
||||
IN: io.serial.unix
|
||||
|
||||
<< {
|
||||
|
@ -31,8 +31,9 @@ FUNCTION: int cfsetspeed ( termios* t, speed_t s ) ;
|
|||
: <file-rw> ( path -- stream ) open-rw fd>duplex-stream ;
|
||||
|
||||
M: unix open-serial ( serial -- serial' )
|
||||
dup
|
||||
path>> { O_RDWR O_NOCTTY O_NDELAY } flags file-mode open-file
|
||||
fd>duplex-stream ;
|
||||
fd>duplex-stream >>stream ;
|
||||
|
||||
: serial-fd ( serial -- fd )
|
||||
stream>> in>> handle>> fd>> ;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
USING: io.files.windows io.streams.duplex kernel math
|
||||
math.bitwise windows.kernel32 accessors alien.c-types
|
||||
windows io.files.windows fry locals continuations ;
|
||||
IN: serial.windows
|
||||
IN: io.serial.windows
|
||||
|
||||
: <serial-stream> ( path encoding -- duplex )
|
||||
[ open-r/w dup ] dip <encoder-duplex> ;
|
|
@ -2,117 +2,117 @@ USING: iokit alien alien.syntax alien.c-types kernel
|
|||
system core-foundation ;
|
||||
IN: iokit.hid
|
||||
|
||||
: kIOHIDDeviceKey "IOHIDDevice" ; inline
|
||||
CONSTANT: kIOHIDDeviceKey "IOHIDDevice"
|
||||
|
||||
: kIOHIDTransportKey "Transport" ; inline
|
||||
: kIOHIDVendorIDKey "VendorID" ; inline
|
||||
: kIOHIDVendorIDSourceKey "VendorIDSource" ; inline
|
||||
: kIOHIDProductIDKey "ProductID" ; inline
|
||||
: kIOHIDVersionNumberKey "VersionNumber" ; inline
|
||||
: kIOHIDManufacturerKey "Manufacturer" ; inline
|
||||
: kIOHIDProductKey "Product" ; inline
|
||||
: kIOHIDSerialNumberKey "SerialNumber" ; inline
|
||||
: kIOHIDCountryCodeKey "CountryCode" ; inline
|
||||
: kIOHIDLocationIDKey "LocationID" ; inline
|
||||
: kIOHIDDeviceUsageKey "DeviceUsage" ; inline
|
||||
: kIOHIDDeviceUsagePageKey "DeviceUsagePage" ; inline
|
||||
: kIOHIDDeviceUsagePairsKey "DeviceUsagePairs" ; inline
|
||||
: kIOHIDPrimaryUsageKey "PrimaryUsage" ; inline
|
||||
: kIOHIDPrimaryUsagePageKey "PrimaryUsagePage" ; inline
|
||||
: kIOHIDMaxInputReportSizeKey "MaxInputReportSize" ; inline
|
||||
: kIOHIDMaxOutputReportSizeKey "MaxOutputReportSize" ; inline
|
||||
: kIOHIDMaxFeatureReportSizeKey "MaxFeatureReportSize" ; inline
|
||||
: kIOHIDReportIntervalKey "ReportInterval" ; inline
|
||||
CONSTANT: kIOHIDTransportKey "Transport"
|
||||
CONSTANT: kIOHIDVendorIDKey "VendorID"
|
||||
CONSTANT: kIOHIDVendorIDSourceKey "VendorIDSource"
|
||||
CONSTANT: kIOHIDProductIDKey "ProductID"
|
||||
CONSTANT: kIOHIDVersionNumberKey "VersionNumber"
|
||||
CONSTANT: kIOHIDManufacturerKey "Manufacturer"
|
||||
CONSTANT: kIOHIDProductKey "Product"
|
||||
CONSTANT: kIOHIDSerialNumberKey "SerialNumber"
|
||||
CONSTANT: kIOHIDCountryCodeKey "CountryCode"
|
||||
CONSTANT: kIOHIDLocationIDKey "LocationID"
|
||||
CONSTANT: kIOHIDDeviceUsageKey "DeviceUsage"
|
||||
CONSTANT: kIOHIDDeviceUsagePageKey "DeviceUsagePage"
|
||||
CONSTANT: kIOHIDDeviceUsagePairsKey "DeviceUsagePairs"
|
||||
CONSTANT: kIOHIDPrimaryUsageKey "PrimaryUsage"
|
||||
CONSTANT: kIOHIDPrimaryUsagePageKey "PrimaryUsagePage"
|
||||
CONSTANT: kIOHIDMaxInputReportSizeKey "MaxInputReportSize"
|
||||
CONSTANT: kIOHIDMaxOutputReportSizeKey "MaxOutputReportSize"
|
||||
CONSTANT: kIOHIDMaxFeatureReportSizeKey "MaxFeatureReportSize"
|
||||
CONSTANT: kIOHIDReportIntervalKey "ReportInterval"
|
||||
|
||||
: kIOHIDElementKey "Elements" ; inline
|
||||
CONSTANT: kIOHIDElementKey "Elements"
|
||||
|
||||
: kIOHIDElementCookieKey "ElementCookie" ; inline
|
||||
: kIOHIDElementTypeKey "Type" ; inline
|
||||
: kIOHIDElementCollectionTypeKey "CollectionType" ; inline
|
||||
: kIOHIDElementUsageKey "Usage" ; inline
|
||||
: kIOHIDElementUsagePageKey "UsagePage" ; inline
|
||||
: kIOHIDElementMinKey "Min" ; inline
|
||||
: kIOHIDElementMaxKey "Max" ; inline
|
||||
: kIOHIDElementScaledMinKey "ScaledMin" ; inline
|
||||
: kIOHIDElementScaledMaxKey "ScaledMax" ; inline
|
||||
: kIOHIDElementSizeKey "Size" ; inline
|
||||
: kIOHIDElementReportSizeKey "ReportSize" ; inline
|
||||
: kIOHIDElementReportCountKey "ReportCount" ; inline
|
||||
: kIOHIDElementReportIDKey "ReportID" ; inline
|
||||
: kIOHIDElementIsArrayKey "IsArray" ; inline
|
||||
: kIOHIDElementIsRelativeKey "IsRelative" ; inline
|
||||
: kIOHIDElementIsWrappingKey "IsWrapping" ; inline
|
||||
: kIOHIDElementIsNonLinearKey "IsNonLinear" ; inline
|
||||
: kIOHIDElementHasPreferredStateKey "HasPreferredState" ; inline
|
||||
: kIOHIDElementHasNullStateKey "HasNullState" ; inline
|
||||
: kIOHIDElementFlagsKey "Flags" ; inline
|
||||
: kIOHIDElementUnitKey "Unit" ; inline
|
||||
: kIOHIDElementUnitExponentKey "UnitExponent" ; inline
|
||||
: kIOHIDElementNameKey "Name" ; inline
|
||||
: kIOHIDElementValueLocationKey "ValueLocation" ; inline
|
||||
: kIOHIDElementDuplicateIndexKey "DuplicateIndex" ; inline
|
||||
: kIOHIDElementParentCollectionKey "ParentCollection" ; inline
|
||||
CONSTANT: kIOHIDElementCookieKey "ElementCookie"
|
||||
CONSTANT: kIOHIDElementTypeKey "Type"
|
||||
CONSTANT: kIOHIDElementCollectionTypeKey "CollectionType"
|
||||
CONSTANT: kIOHIDElementUsageKey "Usage"
|
||||
CONSTANT: kIOHIDElementUsagePageKey "UsagePage"
|
||||
CONSTANT: kIOHIDElementMinKey "Min"
|
||||
CONSTANT: kIOHIDElementMaxKey "Max"
|
||||
CONSTANT: kIOHIDElementScaledMinKey "ScaledMin"
|
||||
CONSTANT: kIOHIDElementScaledMaxKey "ScaledMax"
|
||||
CONSTANT: kIOHIDElementSizeKey "Size"
|
||||
CONSTANT: kIOHIDElementReportSizeKey "ReportSize"
|
||||
CONSTANT: kIOHIDElementReportCountKey "ReportCount"
|
||||
CONSTANT: kIOHIDElementReportIDKey "ReportID"
|
||||
CONSTANT: kIOHIDElementIsArrayKey "IsArray"
|
||||
CONSTANT: kIOHIDElementIsRelativeKey "IsRelative"
|
||||
CONSTANT: kIOHIDElementIsWrappingKey "IsWrapping"
|
||||
CONSTANT: kIOHIDElementIsNonLinearKey "IsNonLinear"
|
||||
CONSTANT: kIOHIDElementHasPreferredStateKey "HasPreferredState"
|
||||
CONSTANT: kIOHIDElementHasNullStateKey "HasNullState"
|
||||
CONSTANT: kIOHIDElementFlagsKey "Flags"
|
||||
CONSTANT: kIOHIDElementUnitKey "Unit"
|
||||
CONSTANT: kIOHIDElementUnitExponentKey "UnitExponent"
|
||||
CONSTANT: kIOHIDElementNameKey "Name"
|
||||
CONSTANT: kIOHIDElementValueLocationKey "ValueLocation"
|
||||
CONSTANT: kIOHIDElementDuplicateIndexKey "DuplicateIndex"
|
||||
CONSTANT: kIOHIDElementParentCollectionKey "ParentCollection"
|
||||
|
||||
: kIOHIDElementVendorSpecificKey ( -- str )
|
||||
cpu ppc? "VendorSpecifc" "VendorSpecific" ? ; inline
|
||||
|
||||
: kIOHIDElementCookieMinKey "ElementCookieMin" ; inline
|
||||
: kIOHIDElementCookieMaxKey "ElementCookieMax" ; inline
|
||||
: kIOHIDElementUsageMinKey "UsageMin" ; inline
|
||||
: kIOHIDElementUsageMaxKey "UsageMax" ; inline
|
||||
CONSTANT: kIOHIDElementCookieMinKey "ElementCookieMin"
|
||||
CONSTANT: kIOHIDElementCookieMaxKey "ElementCookieMax"
|
||||
CONSTANT: kIOHIDElementUsageMinKey "UsageMin"
|
||||
CONSTANT: kIOHIDElementUsageMaxKey "UsageMax"
|
||||
|
||||
: kIOHIDElementCalibrationMinKey "CalibrationMin" ; inline
|
||||
: kIOHIDElementCalibrationMaxKey "CalibrationMax" ; inline
|
||||
: kIOHIDElementCalibrationSaturationMinKey "CalibrationSaturationMin" ; inline
|
||||
: kIOHIDElementCalibrationSaturationMaxKey "CalibrationSaturationMax" ; inline
|
||||
: kIOHIDElementCalibrationDeadZoneMinKey "CalibrationDeadZoneMin" ; inline
|
||||
: kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax" ; inline
|
||||
: kIOHIDElementCalibrationGranularityKey "CalibrationGranularity" ; inline
|
||||
CONSTANT: kIOHIDElementCalibrationMinKey "CalibrationMin"
|
||||
CONSTANT: kIOHIDElementCalibrationMaxKey "CalibrationMax"
|
||||
CONSTANT: kIOHIDElementCalibrationSaturationMinKey "CalibrationSaturationMin"
|
||||
CONSTANT: kIOHIDElementCalibrationSaturationMaxKey "CalibrationSaturationMax"
|
||||
CONSTANT: kIOHIDElementCalibrationDeadZoneMinKey "CalibrationDeadZoneMin"
|
||||
CONSTANT: kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax"
|
||||
CONSTANT: kIOHIDElementCalibrationGranularityKey "CalibrationGranularity"
|
||||
|
||||
: kIOHIDElementTypeInput_Misc 1 ; inline
|
||||
: kIOHIDElementTypeInput_Button 2 ; inline
|
||||
: kIOHIDElementTypeInput_Axis 3 ; inline
|
||||
: kIOHIDElementTypeInput_ScanCodes 4 ; inline
|
||||
: kIOHIDElementTypeOutput 129 ; inline
|
||||
: kIOHIDElementTypeFeature 257 ; inline
|
||||
: kIOHIDElementTypeCollection 513 ; inline
|
||||
CONSTANT: kIOHIDElementTypeInput_Misc 1
|
||||
CONSTANT: kIOHIDElementTypeInput_Button 2
|
||||
CONSTANT: kIOHIDElementTypeInput_Axis 3
|
||||
CONSTANT: kIOHIDElementTypeInput_ScanCodes 4
|
||||
CONSTANT: kIOHIDElementTypeOutput 129
|
||||
CONSTANT: kIOHIDElementTypeFeature 257
|
||||
CONSTANT: kIOHIDElementTypeCollection 513
|
||||
|
||||
: kIOHIDElementCollectionTypePhysical HEX: 00 ; inline
|
||||
: kIOHIDElementCollectionTypeApplication HEX: 01 ; inline
|
||||
: kIOHIDElementCollectionTypeLogical HEX: 02 ; inline
|
||||
: kIOHIDElementCollectionTypeReport HEX: 03 ; inline
|
||||
: kIOHIDElementCollectionTypeNamedArray HEX: 04 ; inline
|
||||
: kIOHIDElementCollectionTypeUsageSwitch HEX: 05 ; inline
|
||||
: kIOHIDElementCollectionTypeUsageModifier HEX: 06 ; inline
|
||||
CONSTANT: kIOHIDElementCollectionTypePhysical HEX: 00
|
||||
CONSTANT: kIOHIDElementCollectionTypeApplication HEX: 01
|
||||
CONSTANT: kIOHIDElementCollectionTypeLogical HEX: 02
|
||||
CONSTANT: kIOHIDElementCollectionTypeReport HEX: 03
|
||||
CONSTANT: kIOHIDElementCollectionTypeNamedArray HEX: 04
|
||||
CONSTANT: kIOHIDElementCollectionTypeUsageSwitch HEX: 05
|
||||
CONSTANT: kIOHIDElementCollectionTypeUsageModifier HEX: 06
|
||||
|
||||
: kIOHIDReportTypeInput 0 ; inline
|
||||
: kIOHIDReportTypeOutput 1 ; inline
|
||||
: kIOHIDReportTypeFeature 2 ; inline
|
||||
: kIOHIDReportTypeCount 3 ; inline
|
||||
CONSTANT: kIOHIDReportTypeInput 0
|
||||
CONSTANT: kIOHIDReportTypeOutput 1
|
||||
CONSTANT: kIOHIDReportTypeFeature 2
|
||||
CONSTANT: kIOHIDReportTypeCount 3
|
||||
|
||||
: kIOHIDOptionsTypeNone HEX: 00 ; inline
|
||||
: kIOHIDOptionsTypeSeizeDevice HEX: 01 ; inline
|
||||
CONSTANT: kIOHIDOptionsTypeNone HEX: 00
|
||||
CONSTANT: kIOHIDOptionsTypeSeizeDevice HEX: 01
|
||||
|
||||
: kIOHIDQueueOptionsTypeNone HEX: 00 ; inline
|
||||
: kIOHIDQueueOptionsTypeEnqueueAll HEX: 01 ; inline
|
||||
CONSTANT: kIOHIDQueueOptionsTypeNone HEX: 00
|
||||
CONSTANT: kIOHIDQueueOptionsTypeEnqueueAll HEX: 01
|
||||
|
||||
: kIOHIDElementFlagsConstantMask HEX: 0001 ; inline
|
||||
: kIOHIDElementFlagsVariableMask HEX: 0002 ; inline
|
||||
: kIOHIDElementFlagsRelativeMask HEX: 0004 ; inline
|
||||
: kIOHIDElementFlagsWrapMask HEX: 0008 ; inline
|
||||
: kIOHIDElementFlagsNonLinearMask HEX: 0010 ; inline
|
||||
: kIOHIDElementFlagsNoPreferredMask HEX: 0020 ; inline
|
||||
: kIOHIDElementFlagsNullStateMask HEX: 0040 ; inline
|
||||
: kIOHIDElementFlagsVolativeMask HEX: 0080 ; inline
|
||||
: kIOHIDElementFlagsBufferedByteMask HEX: 0100 ; inline
|
||||
CONSTANT: kIOHIDElementFlagsConstantMask HEX: 0001
|
||||
CONSTANT: kIOHIDElementFlagsVariableMask HEX: 0002
|
||||
CONSTANT: kIOHIDElementFlagsRelativeMask HEX: 0004
|
||||
CONSTANT: kIOHIDElementFlagsWrapMask HEX: 0008
|
||||
CONSTANT: kIOHIDElementFlagsNonLinearMask HEX: 0010
|
||||
CONSTANT: kIOHIDElementFlagsNoPreferredMask HEX: 0020
|
||||
CONSTANT: kIOHIDElementFlagsNullStateMask HEX: 0040
|
||||
CONSTANT: kIOHIDElementFlagsVolativeMask HEX: 0080
|
||||
CONSTANT: kIOHIDElementFlagsBufferedByteMask HEX: 0100
|
||||
|
||||
: kIOHIDValueScaleTypeCalibrated 0 ; inline
|
||||
: kIOHIDValueScaleTypePhysical 1 ; inline
|
||||
CONSTANT: kIOHIDValueScaleTypeCalibrated 0
|
||||
CONSTANT: kIOHIDValueScaleTypePhysical 1
|
||||
|
||||
: kIOHIDTransactionDirectionTypeInput 0 ; inline
|
||||
: kIOHIDTransactionDirectionTypeOutput 1 ; inline
|
||||
CONSTANT: kIOHIDTransactionDirectionTypeInput 0
|
||||
CONSTANT: kIOHIDTransactionDirectionTypeOutput 1
|
||||
|
||||
: kIOHIDTransactionOptionDefaultOutputValue 1 ; inline
|
||||
CONSTANT: kIOHIDTransactionOptionDefaultOutputValue 1
|
||||
|
||||
TYPEDEF: ptrdiff_t IOHIDElementCookie
|
||||
TYPEDEF: int IOHIDElementType
|
||||
|
|
|
@ -9,95 +9,95 @@ IN: iokit
|
|||
when
|
||||
>>
|
||||
|
||||
: kIOKitBuildVersionKey "IOKitBuildVersion" ; inline
|
||||
: kIOKitDiagnosticsKey "IOKitDiagnostics" ; inline
|
||||
CONSTANT: kIOKitBuildVersionKey "IOKitBuildVersion"
|
||||
CONSTANT: kIOKitDiagnosticsKey "IOKitDiagnostics"
|
||||
|
||||
: kIORegistryPlanesKey "IORegistryPlanes" ; inline
|
||||
: kIOCatalogueKey "IOCatalogue" ; inline
|
||||
CONSTANT: kIORegistryPlanesKey "IORegistryPlanes"
|
||||
CONSTANT: kIOCatalogueKey "IOCatalogue"
|
||||
|
||||
: kIOServicePlane "IOService" ; inline
|
||||
: kIOPowerPlane "IOPower" ; inline
|
||||
: kIODeviceTreePlane "IODeviceTree" ; inline
|
||||
: kIOAudioPlane "IOAudio" ; inline
|
||||
: kIOFireWirePlane "IOFireWire" ; inline
|
||||
: kIOUSBPlane "IOUSB" ; inline
|
||||
CONSTANT: kIOServicePlane "IOService"
|
||||
CONSTANT: kIOPowerPlane "IOPower"
|
||||
CONSTANT: kIODeviceTreePlane "IODeviceTree"
|
||||
CONSTANT: kIOAudioPlane "IOAudio"
|
||||
CONSTANT: kIOFireWirePlane "IOFireWire"
|
||||
CONSTANT: kIOUSBPlane "IOUSB"
|
||||
|
||||
: kIOServiceClass "IOService" ; inline
|
||||
CONSTANT: kIOServiceClass "IOService"
|
||||
|
||||
: kIOResourcesClass "IOResources" ; inline
|
||||
CONSTANT: kIOResourcesClass "IOResources"
|
||||
|
||||
: kIOClassKey "IOClass" ; inline
|
||||
: kIOProbeScoreKey "IOProbeScore" ; inline
|
||||
: kIOKitDebugKey "IOKitDebug" ; inline
|
||||
CONSTANT: kIOClassKey "IOClass"
|
||||
CONSTANT: kIOProbeScoreKey "IOProbeScore"
|
||||
CONSTANT: kIOKitDebugKey "IOKitDebug"
|
||||
|
||||
: kIOProviderClassKey "IOProviderClass" ; inline
|
||||
: kIONameMatchKey "IONameMatch" ; inline
|
||||
: kIOPropertyMatchKey "IOPropertyMatch" ; inline
|
||||
: kIOPathMatchKey "IOPathMatch" ; inline
|
||||
: kIOLocationMatchKey "IOLocationMatch" ; inline
|
||||
: kIOParentMatchKey "IOParentMatch" ; inline
|
||||
: kIOResourceMatchKey "IOResourceMatch" ; inline
|
||||
: kIOMatchedServiceCountKey "IOMatchedServiceCountMatch" ; inline
|
||||
CONSTANT: kIOProviderClassKey "IOProviderClass"
|
||||
CONSTANT: kIONameMatchKey "IONameMatch"
|
||||
CONSTANT: kIOPropertyMatchKey "IOPropertyMatch"
|
||||
CONSTANT: kIOPathMatchKey "IOPathMatch"
|
||||
CONSTANT: kIOLocationMatchKey "IOLocationMatch"
|
||||
CONSTANT: kIOParentMatchKey "IOParentMatch"
|
||||
CONSTANT: kIOResourceMatchKey "IOResourceMatch"
|
||||
CONSTANT: kIOMatchedServiceCountKey "IOMatchedServiceCountMatch"
|
||||
|
||||
: kIONameMatchedKey "IONameMatched" ; inline
|
||||
CONSTANT: kIONameMatchedKey "IONameMatched"
|
||||
|
||||
: kIOMatchCategoryKey "IOMatchCategory" ; inline
|
||||
: kIODefaultMatchCategoryKey "IODefaultMatchCategory" ; inline
|
||||
CONSTANT: kIOMatchCategoryKey "IOMatchCategory"
|
||||
CONSTANT: kIODefaultMatchCategoryKey "IODefaultMatchCategory"
|
||||
|
||||
: kIOUserClientClassKey "IOUserClientClass" ; inline
|
||||
CONSTANT: kIOUserClientClassKey "IOUserClientClass"
|
||||
|
||||
: kIOUserClientCrossEndianKey "IOUserClientCrossEndian" ; inline
|
||||
: kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible" ; inline
|
||||
: kIOUserClientSharedInstanceKey "IOUserClientSharedInstance" ; inline
|
||||
CONSTANT: kIOUserClientCrossEndianKey "IOUserClientCrossEndian"
|
||||
CONSTANT: kIOUserClientCrossEndianCompatibleKey "IOUserClientCrossEndianCompatible"
|
||||
CONSTANT: kIOUserClientSharedInstanceKey "IOUserClientSharedInstance"
|
||||
|
||||
: kIOPublishNotification "IOServicePublish" ; inline
|
||||
: kIOFirstPublishNotification "IOServiceFirstPublish" ; inline
|
||||
: kIOMatchedNotification "IOServiceMatched" ; inline
|
||||
: kIOFirstMatchNotification "IOServiceFirstMatch" ; inline
|
||||
: kIOTerminatedNotification "IOServiceTerminate" ; inline
|
||||
CONSTANT: kIOPublishNotification "IOServicePublish"
|
||||
CONSTANT: kIOFirstPublishNotification "IOServiceFirstPublish"
|
||||
CONSTANT: kIOMatchedNotification "IOServiceMatched"
|
||||
CONSTANT: kIOFirstMatchNotification "IOServiceFirstMatch"
|
||||
CONSTANT: kIOTerminatedNotification "IOServiceTerminate"
|
||||
|
||||
: kIOGeneralInterest "IOGeneralInterest" ; inline
|
||||
: kIOBusyInterest "IOBusyInterest" ; inline
|
||||
: kIOAppPowerStateInterest "IOAppPowerStateInterest" ; inline
|
||||
: kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest" ; inline
|
||||
CONSTANT: kIOGeneralInterest "IOGeneralInterest"
|
||||
CONSTANT: kIOBusyInterest "IOBusyInterest"
|
||||
CONSTANT: kIOAppPowerStateInterest "IOAppPowerStateInterest"
|
||||
CONSTANT: kIOPriorityPowerStateInterest "IOPriorityPowerStateInterest"
|
||||
|
||||
: kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage" ; inline
|
||||
CONSTANT: kIOPlatformDeviceMessageKey "IOPlatformDeviceMessage"
|
||||
|
||||
: kIOCFPlugInTypesKey "IOCFPlugInTypes" ; inline
|
||||
CONSTANT: kIOCFPlugInTypesKey "IOCFPlugInTypes"
|
||||
|
||||
: kIOCommandPoolSizeKey "IOCommandPoolSize" ; inline
|
||||
CONSTANT: kIOCommandPoolSizeKey "IOCommandPoolSize"
|
||||
|
||||
: kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead" ; inline
|
||||
: kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite" ; inline
|
||||
: kIOMaximumByteCountReadKey "IOMaximumByteCountRead" ; inline
|
||||
: kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite" ; inline
|
||||
: kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead" ; inline
|
||||
: kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite" ; inline
|
||||
: kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead" ; inline
|
||||
: kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite" ; inline
|
||||
: kIOMinimumSegmentAlignmentByteCountKey "IOMinimumSegmentAlignmentByteCount" ; inline
|
||||
: kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount" ; inline
|
||||
CONSTANT: kIOMaximumBlockCountReadKey "IOMaximumBlockCountRead"
|
||||
CONSTANT: kIOMaximumBlockCountWriteKey "IOMaximumBlockCountWrite"
|
||||
CONSTANT: kIOMaximumByteCountReadKey "IOMaximumByteCountRead"
|
||||
CONSTANT: kIOMaximumByteCountWriteKey "IOMaximumByteCountWrite"
|
||||
CONSTANT: kIOMaximumSegmentCountReadKey "IOMaximumSegmentCountRead"
|
||||
CONSTANT: kIOMaximumSegmentCountWriteKey "IOMaximumSegmentCountWrite"
|
||||
CONSTANT: kIOMaximumSegmentByteCountReadKey "IOMaximumSegmentByteCountRead"
|
||||
CONSTANT: kIOMaximumSegmentByteCountWriteKey "IOMaximumSegmentByteCountWrite"
|
||||
CONSTANT: kIOMinimumSegmentAlignmentByteCountKey "IOMinimumSegmentAlignmentByteCount"
|
||||
CONSTANT: kIOMaximumSegmentAddressableBitCountKey "IOMaximumSegmentAddressableBitCount"
|
||||
|
||||
: kIOIconKey "IOIcon" ; inline
|
||||
: kIOBundleResourceFileKey "IOBundleResourceFile" ; inline
|
||||
CONSTANT: kIOIconKey "IOIcon"
|
||||
CONSTANT: kIOBundleResourceFileKey "IOBundleResourceFile"
|
||||
|
||||
: kIOBusBadgeKey "IOBusBadge" ; inline
|
||||
: kIODeviceIconKey "IODeviceIcon" ; inline
|
||||
CONSTANT: kIOBusBadgeKey "IOBusBadge"
|
||||
CONSTANT: kIODeviceIconKey "IODeviceIcon"
|
||||
|
||||
: kIOPlatformSerialNumberKey "IOPlatformSerialNumber" ; inline
|
||||
CONSTANT: kIOPlatformSerialNumberKey "IOPlatformSerialNumber"
|
||||
|
||||
: kIOPlatformUUIDKey "IOPlatformUUID" ; inline
|
||||
CONSTANT: kIOPlatformUUIDKey "IOPlatformUUID"
|
||||
|
||||
: kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY" ; inline
|
||||
: kIODTNVRAMPanicInfoKey "aapl,panic-info" ; inline
|
||||
CONSTANT: kIONVRAMDeletePropertyKey "IONVRAM-DELETE-PROPERTY"
|
||||
CONSTANT: kIODTNVRAMPanicInfoKey "aapl,panic-info"
|
||||
|
||||
: kIOBootDeviceKey "IOBootDevice" ; inline
|
||||
: kIOBootDevicePathKey "IOBootDevicePath" ; inline
|
||||
: kIOBootDeviceSizeKey "IOBootDeviceSize" ; inline
|
||||
CONSTANT: kIOBootDeviceKey "IOBootDevice"
|
||||
CONSTANT: kIOBootDevicePathKey "IOBootDevicePath"
|
||||
CONSTANT: kIOBootDeviceSizeKey "IOBootDeviceSize"
|
||||
|
||||
: kOSBuildVersionKey "OS Build Version" ; inline
|
||||
CONSTANT: kOSBuildVersionKey "OS Build Version"
|
||||
|
||||
: kNilOptions 0 ; inline
|
||||
CONSTANT: kNilOptions 0
|
||||
|
||||
TYPEDEF: uint mach_port_t
|
||||
TYPEDEF: int kern_return_t
|
||||
|
@ -112,8 +112,8 @@ TYPEDEF: kern_return_t IOReturn
|
|||
|
||||
TYPEDEF: uint IOOptionBits
|
||||
|
||||
: MACH_PORT_NULL 0 ; inline
|
||||
: KERN_SUCCESS 0 ; inline
|
||||
CONSTANT: MACH_PORT_NULL 0
|
||||
CONSTANT: KERN_SUCCESS 0
|
||||
|
||||
FUNCTION: IOReturn IOMasterPort ( mach_port_t bootstrap, mach_port_t* master ) ;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ IN: math.analysis
|
|||
! http://www.rskey.org/gamma.htm "Lanczos Approximation"
|
||||
! n=6: error ~ 3 x 10^-11
|
||||
|
||||
: gamma-g6 5.15 ; inline
|
||||
CONSTANT: gamma-g6 5.15
|
||||
|
||||
: gamma-p6
|
||||
{
|
||||
|
|
|
@ -4,8 +4,8 @@ ui.render accessors combinators ;
|
|||
IN: opengl.demo-support
|
||||
|
||||
: FOV ( -- x ) 2.0 sqrt 1+ ; inline
|
||||
: MOUSE-MOTION-SCALE 0.5 ; inline
|
||||
: KEY-ROTATE-STEP 10.0 ; inline
|
||||
CONSTANT: MOUSE-MOTION-SCALE 0.5
|
||||
CONSTANT: KEY-ROTATE-STEP 10.0
|
||||
|
||||
SYMBOL: last-drag-loc
|
||||
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien.c-types assocs combinators destructors
|
||||
kernel math math.bitwise math.parser sequences summary system
|
||||
vocabs.loader ;
|
||||
IN: serial
|
||||
|
||||
TUPLE: serial stream path baud
|
||||
termios iflag oflag cflag lflag ;
|
||||
|
||||
ERROR: invalid-baud baud ;
|
||||
M: invalid-baud summary ( invalid-baud -- string )
|
||||
"Baud rate "
|
||||
swap baud>> number>string
|
||||
" not supported" 3append ;
|
||||
|
||||
HOOK: lookup-baud os ( m -- n )
|
||||
HOOK: open-serial os ( serial -- serial' )
|
||||
M: serial dispose ( serial -- ) stream>> dispose ;
|
||||
|
||||
{
|
||||
{ [ os unix? ] [ "serial.unix" ] }
|
||||
{ [ os windows? ] [ "serial.windows" ] }
|
||||
} cond require
|
|
@ -1 +0,0 @@
|
|||
Serial port library
|
|
@ -1,86 +0,0 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.syntax kernel math.bitwise sequences system serial ;
|
||||
IN: serial.unix
|
||||
|
||||
M: bsd lookup-baud ( m -- n )
|
||||
dup {
|
||||
0 50 75 110 134 150 200 300 600 1200 1800 2400 4800
|
||||
7200 9600 14400 19200 28800 38400 57600 76800 115200
|
||||
230400 460800 921600
|
||||
} member? [ invalid-baud ] unless ;
|
||||
|
||||
: TCSANOW 0 ; inline
|
||||
: TCSADRAIN 1 ; inline
|
||||
: TCSAFLUSH 2 ; inline
|
||||
: TCSASOFT HEX: 10 ; inline
|
||||
|
||||
: TCIFLUSH 1 ; inline
|
||||
: TCOFLUSH 2 ; inline
|
||||
: TCIOFLUSH 3 ; inline
|
||||
: TCOOFF 1 ; inline
|
||||
: TCOON 2 ; inline
|
||||
: TCIOFF 3 ; inline
|
||||
: TCION 4 ; inline
|
||||
|
||||
! iflags
|
||||
: IGNBRK HEX: 00000001 ; inline
|
||||
: BRKINT HEX: 00000002 ; inline
|
||||
: IGNPAR HEX: 00000004 ; inline
|
||||
: PARMRK HEX: 00000008 ; inline
|
||||
: INPCK HEX: 00000010 ; inline
|
||||
: ISTRIP HEX: 00000020 ; inline
|
||||
: INLCR HEX: 00000040 ; inline
|
||||
: IGNCR HEX: 00000080 ; inline
|
||||
: ICRNL HEX: 00000100 ; inline
|
||||
: IXON HEX: 00000200 ; inline
|
||||
: IXOFF HEX: 00000400 ; inline
|
||||
: IXANY HEX: 00000800 ; inline
|
||||
: IMAXBEL HEX: 00002000 ; inline
|
||||
: IUTF8 HEX: 00004000 ; inline
|
||||
|
||||
! oflags
|
||||
: OPOST HEX: 00000001 ; inline
|
||||
: ONLCR HEX: 00000002 ; inline
|
||||
: OXTABS HEX: 00000004 ; inline
|
||||
: ONOEOT HEX: 00000008 ; inline
|
||||
|
||||
! cflags
|
||||
: CIGNORE HEX: 00000001 ; inline
|
||||
: CSIZE HEX: 00000300 ; inline
|
||||
: CS5 HEX: 00000000 ; inline
|
||||
: CS6 HEX: 00000100 ; inline
|
||||
: CS7 HEX: 00000200 ; inline
|
||||
: CS8 HEX: 00000300 ; inline
|
||||
: CSTOPB HEX: 00000400 ; inline
|
||||
: CREAD HEX: 00000800 ; inline
|
||||
: PARENB HEX: 00001000 ; inline
|
||||
: PARODD HEX: 00002000 ; inline
|
||||
: HUPCL HEX: 00004000 ; inline
|
||||
: CLOCAL HEX: 00008000 ; inline
|
||||
: CCTS_OFLOW HEX: 00010000 ; inline
|
||||
: CRTS_IFLOW HEX: 00020000 ; inline
|
||||
: CRTSCTS { CCTS_OFLOW CRTS_IFLOW } flags ; inline
|
||||
: CDTR_IFLOW HEX: 00040000 ; inline
|
||||
: CDSR_OFLOW HEX: 00080000 ; inline
|
||||
: CCAR_OFLOW HEX: 00100000 ; inline
|
||||
: MDMBUF HEX: 00100000 ; inline
|
||||
|
||||
! lflags
|
||||
: ECHOKE HEX: 00000001 ; inline
|
||||
: ECHOE HEX: 00000002 ; inline
|
||||
: ECHOK HEX: 00000004 ; inline
|
||||
: ECHO HEX: 00000008 ; inline
|
||||
: ECHONL HEX: 00000010 ; inline
|
||||
: ECHOPRT HEX: 00000020 ; inline
|
||||
: ECHOCTL HEX: 00000040 ; inline
|
||||
: ISIG HEX: 00000080 ; inline
|
||||
: ICANON HEX: 00000100 ; inline
|
||||
: ALTWERASE HEX: 00000200 ; inline
|
||||
: IEXTEN HEX: 00000400 ; inline
|
||||
: EXTPROC HEX: 00000800 ; inline
|
||||
: TOSTOP HEX: 00400000 ; inline
|
||||
: FLUSHO HEX: 00800000 ; inline
|
||||
: NOKERNINFO HEX: 02000000 ; inline
|
||||
: PENDIN HEX: 20000000 ; inline
|
||||
: NOFLSH HEX: 80000000 ; inline
|
|
@ -1 +0,0 @@
|
|||
unportable
|
|
@ -1,130 +0,0 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: assocs alien.syntax kernel serial system unix ;
|
||||
IN: serial.unix
|
||||
|
||||
: TCSANOW 0 ; inline
|
||||
: TCSADRAIN 1 ; inline
|
||||
: TCSAFLUSH 2 ; inline
|
||||
|
||||
: TCIFLUSH 0 ; inline
|
||||
: TCOFLUSH 1 ; inline
|
||||
: TCIOFLUSH 2 ; inline
|
||||
|
||||
: TCOOFF 0 ; inline
|
||||
: TCOON 1 ; inline
|
||||
: TCIOFF 2 ; inline
|
||||
: TCION 3 ; inline
|
||||
|
||||
! iflag
|
||||
: IGNBRK OCT: 0000001 ; inline
|
||||
: BRKINT OCT: 0000002 ; inline
|
||||
: IGNPAR OCT: 0000004 ; inline
|
||||
: PARMRK OCT: 0000010 ; inline
|
||||
: INPCK OCT: 0000020 ; inline
|
||||
: ISTRIP OCT: 0000040 ; inline
|
||||
: INLCR OCT: 0000100 ; inline
|
||||
: IGNCR OCT: 0000200 ; inline
|
||||
: ICRNL OCT: 0000400 ; inline
|
||||
: IUCLC OCT: 0001000 ; inline
|
||||
: IXON OCT: 0002000 ; inline
|
||||
: IXANY OCT: 0004000 ; inline
|
||||
: IXOFF OCT: 0010000 ; inline
|
||||
: IMAXBEL OCT: 0020000 ; inline
|
||||
: IUTF8 OCT: 0040000 ; inline
|
||||
|
||||
! oflag
|
||||
: OPOST OCT: 0000001 ; inline
|
||||
: OLCUC OCT: 0000002 ; inline
|
||||
: ONLCR OCT: 0000004 ; inline
|
||||
: OCRNL OCT: 0000010 ; inline
|
||||
: ONOCR OCT: 0000020 ; inline
|
||||
: ONLRET OCT: 0000040 ; inline
|
||||
: OFILL OCT: 0000100 ; inline
|
||||
: OFDEL OCT: 0000200 ; inline
|
||||
: NLDLY OCT: 0000400 ; inline
|
||||
: NL0 OCT: 0000000 ; inline
|
||||
: NL1 OCT: 0000400 ; inline
|
||||
: CRDLY OCT: 0003000 ; inline
|
||||
: CR0 OCT: 0000000 ; inline
|
||||
: CR1 OCT: 0001000 ; inline
|
||||
: CR2 OCT: 0002000 ; inline
|
||||
: CR3 OCT: 0003000 ; inline
|
||||
: TABDLY OCT: 0014000 ; inline
|
||||
: TAB0 OCT: 0000000 ; inline
|
||||
: TAB1 OCT: 0004000 ; inline
|
||||
: TAB2 OCT: 0010000 ; inline
|
||||
: TAB3 OCT: 0014000 ; inline
|
||||
: BSDLY OCT: 0020000 ; inline
|
||||
: BS0 OCT: 0000000 ; inline
|
||||
: BS1 OCT: 0020000 ; inline
|
||||
: FFDLY OCT: 0100000 ; inline
|
||||
: FF0 OCT: 0000000 ; inline
|
||||
: FF1 OCT: 0100000 ; inline
|
||||
|
||||
! cflags
|
||||
: CSIZE OCT: 0000060 ; inline
|
||||
: CS5 OCT: 0000000 ; inline
|
||||
: CS6 OCT: 0000020 ; inline
|
||||
: CS7 OCT: 0000040 ; inline
|
||||
: CS8 OCT: 0000060 ; inline
|
||||
: CSTOPB OCT: 0000100 ; inline
|
||||
: CREAD OCT: 0000200 ; inline
|
||||
: PARENB OCT: 0000400 ; inline
|
||||
: PARODD OCT: 0001000 ; inline
|
||||
: HUPCL OCT: 0002000 ; inline
|
||||
: CLOCAL OCT: 0004000 ; inline
|
||||
: CIBAUD OCT: 002003600000 ; inline
|
||||
: CRTSCTS OCT: 020000000000 ; inline
|
||||
|
||||
! lflags
|
||||
: ISIG OCT: 0000001 ; inline
|
||||
: ICANON OCT: 0000002 ; inline
|
||||
: XCASE OCT: 0000004 ; inline
|
||||
: ECHO OCT: 0000010 ; inline
|
||||
: ECHOE OCT: 0000020 ; inline
|
||||
: ECHOK OCT: 0000040 ; inline
|
||||
: ECHONL OCT: 0000100 ; inline
|
||||
: NOFLSH OCT: 0000200 ; inline
|
||||
: TOSTOP OCT: 0000400 ; inline
|
||||
: ECHOCTL OCT: 0001000 ; inline
|
||||
: ECHOPRT OCT: 0002000 ; inline
|
||||
: ECHOKE OCT: 0004000 ; inline
|
||||
: FLUSHO OCT: 0010000 ; inline
|
||||
: PENDIN OCT: 0040000 ; inline
|
||||
: IEXTEN OCT: 0100000 ; inline
|
||||
|
||||
M: linux lookup-baud ( n -- n )
|
||||
dup H{
|
||||
{ 0 OCT: 0000000 }
|
||||
{ 50 OCT: 0000001 }
|
||||
{ 75 OCT: 0000002 }
|
||||
{ 110 OCT: 0000003 }
|
||||
{ 134 OCT: 0000004 }
|
||||
{ 150 OCT: 0000005 }
|
||||
{ 200 OCT: 0000006 }
|
||||
{ 300 OCT: 0000007 }
|
||||
{ 600 OCT: 0000010 }
|
||||
{ 1200 OCT: 0000011 }
|
||||
{ 1800 OCT: 0000012 }
|
||||
{ 2400 OCT: 0000013 }
|
||||
{ 4800 OCT: 0000014 }
|
||||
{ 9600 OCT: 0000015 }
|
||||
{ 19200 OCT: 0000016 }
|
||||
{ 38400 OCT: 0000017 }
|
||||
{ 57600 OCT: 0010001 }
|
||||
{ 115200 OCT: 0010002 }
|
||||
{ 230400 OCT: 0010003 }
|
||||
{ 460800 OCT: 0010004 }
|
||||
{ 500000 OCT: 0010005 }
|
||||
{ 576000 OCT: 0010006 }
|
||||
{ 921600 OCT: 0010007 }
|
||||
{ 1000000 OCT: 0010010 }
|
||||
{ 1152000 OCT: 0010011 }
|
||||
{ 1500000 OCT: 0010012 }
|
||||
{ 2000000 OCT: 0010013 }
|
||||
{ 2500000 OCT: 0010014 }
|
||||
{ 3000000 OCT: 0010015 }
|
||||
{ 3500000 OCT: 0010016 }
|
||||
{ 4000000 OCT: 0010017 }
|
||||
} at* [ nip ] [ drop invalid-baud ] if ;
|
|
@ -1 +0,0 @@
|
|||
unportable
|
|
@ -1 +0,0 @@
|
|||
unportable
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue