Merge branch 'master' of http://factorcode.org/git/factor
commit
010db8eb77
|
@ -1,18 +1,19 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors words quotations kernel effects sequences parser ;
|
||||
USING: accessors words quotations kernel effects sequences
|
||||
parser definitions ;
|
||||
IN: alias
|
||||
|
||||
PREDICATE: alias < word "alias" word-prop ;
|
||||
|
||||
: define-alias ( new old -- )
|
||||
[ [ 1quotation ] [ stack-effect ] bi define-inline ]
|
||||
[ drop t "alias" set-word-prop ] 2bi ;
|
||||
|
||||
: ALIAS: CREATE-WORD scan-word define-alias ; parsing
|
||||
|
||||
M: alias reset-word
|
||||
[ call-next-method ] [ f "alias" set-word-prop ] bi ;
|
||||
|
||||
M: alias stack-effect
|
||||
def>> first stack-effect ;
|
||||
|
||||
: define-alias ( new old -- )
|
||||
[ 1quotation define-inline ]
|
||||
[ drop t "alias" set-word-prop ] 2bi ;
|
||||
|
||||
: ALIAS: CREATE-WORD scan-word define-alias ; parsing
|
||||
|
|
|
@ -234,17 +234,16 @@ M: long-long-type box-return ( type -- )
|
|||
f swap box-parameter ;
|
||||
|
||||
: define-deref ( name -- )
|
||||
[ CHAR: * prefix "alien.c-types" create ]
|
||||
[ c-getter 0 prefix ] bi
|
||||
define-inline ;
|
||||
[ CHAR: * prefix "alien.c-types" create ] [ c-getter 0 prefix ] bi
|
||||
(( c-ptr -- value )) define-inline ;
|
||||
|
||||
: define-out ( name -- )
|
||||
[ "alien.c-types" constructor-word ]
|
||||
[ dup c-setter '[ _ <c-object> [ 0 @ ] keep ] ]
|
||||
bi define-inline ;
|
||||
[ dup c-setter '[ _ <c-object> [ 0 @ ] keep ] ] bi
|
||||
(( value -- c-ptr )) define-inline ;
|
||||
|
||||
: c-bool> ( int -- ? )
|
||||
zero? not ;
|
||||
0 = not ; inline
|
||||
|
||||
: define-primitive-type ( type name -- )
|
||||
[ typedef ]
|
||||
|
|
|
@ -52,8 +52,8 @@ PREDICATE: slot-writer < word "writing" word-prop >boolean ;
|
|||
[ (>>offset) ] [ type>> heap-size + ] 2bi
|
||||
] reduce ;
|
||||
|
||||
: define-struct-slot-word ( word quot spec -- )
|
||||
offset>> prefix define-inline ;
|
||||
: define-struct-slot-word ( word quot spec effect -- )
|
||||
[ offset>> prefix ] dip define-inline ;
|
||||
|
||||
: define-getter ( type spec -- )
|
||||
[ set-reader-props ] keep
|
||||
|
@ -62,11 +62,13 @@ PREDICATE: slot-writer < word "writing" word-prop >boolean ;
|
|||
type>>
|
||||
[ c-getter ] [ c-type-boxer-quot ] bi append
|
||||
]
|
||||
[ ] tri define-struct-slot-word ;
|
||||
[ ] tri
|
||||
(( c-ptr -- value )) define-struct-slot-word ;
|
||||
|
||||
: define-setter ( type spec -- )
|
||||
[ set-writer-props ] keep
|
||||
[ writer>> ] [ type>> c-setter ] [ ] tri define-struct-slot-word ;
|
||||
[ writer>> ] [ type>> c-setter ] [ ] tri
|
||||
(( value c-ptr -- )) define-struct-slot-word ;
|
||||
|
||||
: define-field ( type spec -- )
|
||||
[ define-getter ] [ define-setter ] 2bi ;
|
||||
|
|
|
@ -11,7 +11,7 @@ TUPLE: bit-array
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: n>byte -3 shift ; inline
|
||||
: n>byte ( m -- n ) -3 shift ; inline
|
||||
|
||||
: byte/bit ( n alien -- byte bit )
|
||||
over n>byte alien-unsigned-1 swap 7 bitand ; inline
|
||||
|
@ -19,9 +19,9 @@ TUPLE: bit-array
|
|||
: set-bit ( ? byte bit -- byte )
|
||||
2^ rot [ bitor ] [ bitnot bitand ] if ; inline
|
||||
|
||||
: bits>cells 31 + -5 shift ; inline
|
||||
: bits>cells ( m -- n ) 31 + -5 shift ; inline
|
||||
|
||||
: bits>bytes 7 + n>byte ; inline
|
||||
: bits>bytes ( m -- n ) 7 + n>byte ; inline
|
||||
|
||||
: (set-bits) ( bit-array n -- )
|
||||
[ [ length bits>cells ] keep ] dip swap underlying>>
|
||||
|
|
|
@ -66,7 +66,7 @@ M: id equal?
|
|||
|
||||
SYMBOL: objects
|
||||
|
||||
: (objects) <id> objects get ; inline
|
||||
: (objects) ( obj -- id assoc ) <id> objects get ; inline
|
||||
|
||||
: lookup-object ( obj -- n/f ) (objects) at ;
|
||||
|
||||
|
|
|
@ -211,7 +211,7 @@ M: real +minute ( timestamp n -- timestamp )
|
|||
M: number +second ( timestamp n -- timestamp )
|
||||
[ over second>> + seconds/minutes [ >>second ] dip +minute ] unless-zero ;
|
||||
|
||||
: (time+)
|
||||
: (time+) ( timestamp duration -- timestamp' duration )
|
||||
[ second>> +second ] keep
|
||||
[ minute>> +minute ] keep
|
||||
[ hour>> +hour ] keep
|
||||
|
@ -219,7 +219,8 @@ M: number +second ( timestamp n -- timestamp )
|
|||
[ month>> +month ] keep
|
||||
[ year>> +year ] keep ; inline
|
||||
|
||||
: +slots [ bi@ + ] curry 2keep ; inline
|
||||
: +slots ( obj1 obj2 quot -- n obj1 obj2 )
|
||||
[ bi@ + ] curry 2keep ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: help.syntax help.markup ;
|
|||
HELP: openssl-checksum
|
||||
{ $class-description "The class of checksum algorithms implemented by OpenSSL. The exact set of algorithms supported depends on how the OpenSSL library was compiled; " { $snippet "md5" } " and " { $snippet "sha1" } " should be universally available." } ;
|
||||
|
||||
HELP: <openssl-checksum> ( name -- checksum )
|
||||
HELP: <openssl-checksum>
|
||||
{ $values { "name" "an EVP message digest name" } { "checksum" openssl-checksum } }
|
||||
{ $description "Creates a new OpenSSL checksum object." } ;
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ IN: cocoa.windows
|
|||
: NSBackingStoreNonretained 1 ; inline
|
||||
: NSBackingStoreBuffered 2 ; inline
|
||||
|
||||
: standard-window-type
|
||||
: standard-window-type ( -- n )
|
||||
{
|
||||
NSTitledWindowMask
|
||||
NSClosableWindowMask
|
||||
|
|
|
@ -4,8 +4,8 @@ IN: columns
|
|||
HELP: column
|
||||
{ $class-description "A virtual sequence which presents a fixed column of a matrix represented as a sequence of rows. New instances can be created by calling " { $link <column> } "." } ;
|
||||
|
||||
HELP: <column> ( seq n -- column )
|
||||
{ $values { "seq" sequence } { "n" "a non-negative integer" } { "column" column } }
|
||||
HELP: <column>
|
||||
{ $values { "seq" sequence } { "col" "a non-negative integer" } { "column" column } }
|
||||
{ $description "Outputs a new virtual sequence which presents a fixed column of a matrix represented as a sequence of rows." "The " { $snippet "i" } "th element of a column is the " { $snippet "n" } "th element of the " { $snippet "i" } "th element of " { $snippet "seq" } ". Every element of " { $snippet "seq" } " must be a sequence, and all sequences must have equal length." }
|
||||
{ $examples
|
||||
{ $example
|
||||
|
|
|
@ -68,7 +68,8 @@ IN: compiler.cfg.alias-analysis
|
|||
! Map vregs -> alias classes
|
||||
SYMBOL: vregs>acs
|
||||
|
||||
: check [ "BUG: static type error detected" throw ] unless* ; inline
|
||||
: check ( obj -- obj )
|
||||
[ "BUG: static type error detected" throw ] unless* ; inline
|
||||
|
||||
: vreg>ac ( vreg -- ac )
|
||||
#! Only vregs produced by ##allot, ##peek and ##slot can
|
||||
|
|
|
@ -5,17 +5,17 @@ sequences classes.tuple cpu.architecture compiler.cfg.registers
|
|||
compiler.cfg.instructions ;
|
||||
IN: compiler.cfg.hats
|
||||
|
||||
: i int-regs next-vreg ; inline
|
||||
: ^^i i dup ; inline
|
||||
: ^^i1 [ ^^i ] dip ; inline
|
||||
: ^^i2 [ ^^i ] 2dip ; inline
|
||||
: ^^i3 [ ^^i ] 3dip ; inline
|
||||
: i ( -- vreg ) int-regs next-vreg ; inline
|
||||
: ^^i ( -- vreg vreg ) i dup ; inline
|
||||
: ^^i1 ( obj -- vreg vreg obj ) [ ^^i ] dip ; inline
|
||||
: ^^i2 ( obj obj -- vreg vreg obj obj ) [ ^^i ] 2dip ; inline
|
||||
: ^^i3 ( obj obj obj -- vreg vreg obj obj obj ) [ ^^i ] 3dip ; inline
|
||||
|
||||
: d double-float-regs next-vreg ; inline
|
||||
: ^^d d dup ; inline
|
||||
: ^^d1 [ ^^d ] dip ; inline
|
||||
: ^^d2 [ ^^d ] 2dip ; inline
|
||||
: ^^d3 [ ^^d ] 3dip ; inline
|
||||
: d ( -- vreg ) double-float-regs next-vreg ; inline
|
||||
: ^^d ( -- vreg vreg ) d dup ; inline
|
||||
: ^^d1 ( obj -- vreg vreg obj ) [ ^^d ] dip ; inline
|
||||
: ^^d2 ( obj obj -- vreg vreg obj obj ) [ ^^d ] 2dip ; inline
|
||||
: ^^d3 ( obj obj obj -- vreg vreg obj obj obj ) [ ^^d ] 3dip ; inline
|
||||
|
||||
: ^^load-literal ( obj -- dst ) ^^i1 ##load-literal ; inline
|
||||
: ^^peek ( loc -- dst ) ^^i1 ##peek ; inline
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: classes.tuple classes.tuple.parser kernel words
|
||||
make fry sequences parser ;
|
||||
make fry sequences parser accessors ;
|
||||
IN: compiler.cfg.instructions.syntax
|
||||
|
||||
: insn-word ( -- word )
|
||||
|
@ -10,10 +10,13 @@ IN: compiler.cfg.instructions.syntax
|
|||
#! this one.
|
||||
"insn" "compiler.cfg.instructions" lookup ;
|
||||
|
||||
: insn-effect ( word -- effect )
|
||||
boa-effect [ but-last ] change-in { } >>out ;
|
||||
|
||||
: INSN:
|
||||
parse-tuple-definition "regs" suffix
|
||||
[ dup tuple eq? [ drop insn-word ] when ] dip
|
||||
[ define-tuple-class ]
|
||||
[ 2drop save-location ]
|
||||
[ 2drop dup '[ f _ boa , ] define-inline ]
|
||||
[ 2drop [ ] [ '[ f _ boa , ] ] [ insn-effect ] tri define-inline ]
|
||||
3tri ; parsing
|
||||
|
|
|
@ -37,7 +37,7 @@ M: insn linearize-insn , drop ;
|
|||
M: ##branch linearize-insn
|
||||
drop dup successors>> first emit-branch ;
|
||||
|
||||
: (binary-conditional)
|
||||
: (binary-conditional) ( basic-block insn -- basic-block successor1 successor2 src1 src2 cc )
|
||||
[ dup successors>> first2 ]
|
||||
[ [ src1>> ] [ src2>> ] [ cc>> ] tri ] bi* ; inline
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ M: ##dispatch-label generate-insn label>> %dispatch-label ;
|
|||
M: ##dispatch generate-insn
|
||||
[ src>> register ] [ temp>> register ] [ offset>> ] tri %dispatch ;
|
||||
|
||||
: >slot<
|
||||
: >slot< ( insn -- dst obj slot tag )
|
||||
{
|
||||
[ dst>> register ]
|
||||
[ obj>> register ]
|
||||
|
@ -109,7 +109,7 @@ M: ##slot generate-insn
|
|||
M: ##slot-imm generate-insn
|
||||
>slot< %slot-imm ;
|
||||
|
||||
: >set-slot<
|
||||
: >set-slot< ( insn -- src obj slot tag )
|
||||
{
|
||||
[ src>> register ]
|
||||
[ obj>> register ]
|
||||
|
@ -209,7 +209,8 @@ M: ##alien-cell generate-insn dst/src %alien-cell ;
|
|||
M: ##alien-float generate-insn dst/src %alien-float ;
|
||||
M: ##alien-double generate-insn dst/src %alien-double ;
|
||||
|
||||
: >alien-setter< [ src>> register ] [ value>> register ] bi ; inline
|
||||
: >alien-setter< ( insn -- src value )
|
||||
[ src>> register ] [ value>> register ] bi ; inline
|
||||
|
||||
M: ##set-alien-integer-1 generate-insn >alien-setter< %set-alien-integer-1 ;
|
||||
M: ##set-alien-integer-2 generate-insn >alien-setter< %set-alien-integer-2 ;
|
||||
|
|
|
@ -28,7 +28,8 @@ PRIVATE>
|
|||
|
||||
: [future] ( quot -- quot' ) '[ _ curry future ] ; inline
|
||||
|
||||
: future-values dup [ ?future ] change-each ; inline
|
||||
: future-values ( futures -- futures )
|
||||
dup [ ?future ] change-each ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: parser kernel words ;
|
||||
IN: constants
|
||||
|
||||
: CONSTANT:
|
||||
CREATE scan-object [ ] curry (( -- value ))
|
||||
define-inline ; parsing
|
|
@ -189,19 +189,19 @@ MTSPR: LR 8
|
|||
MTSPR: CTR 9
|
||||
|
||||
! Pseudo-instructions
|
||||
: LI 0 rot ADDI ; inline
|
||||
: SUBI neg ADDI ; inline
|
||||
: LIS 0 rot ADDIS ; inline
|
||||
: SUBIC neg ADDIC ; inline
|
||||
: SUBIC. neg ADDIC. ; inline
|
||||
: NOT dup NOR ; inline
|
||||
: NOT. dup NOR. ; inline
|
||||
: MR dup OR ; inline
|
||||
: MR. dup OR. ; inline
|
||||
: (SLWI) 0 31 pick - ; inline
|
||||
: LI ( value dst -- ) 0 rot ADDI ; inline
|
||||
: SUBI ( dst src1 src2 -- ) neg ADDI ; inline
|
||||
: LIS ( value dst -- ) 0 rot ADDIS ; inline
|
||||
: SUBIC ( dst src1 src2 -- ) neg ADDIC ; inline
|
||||
: SUBIC. ( dst src1 src2 -- ) neg ADDIC. ; inline
|
||||
: NOT ( dst src -- ) dup NOR ; inline
|
||||
: NOT. ( dst src -- ) dup NOR. ; inline
|
||||
: MR ( dst src -- ) dup OR ; inline
|
||||
: MR. ( dst src -- ) dup OR. ; inline
|
||||
: (SLWI) ( d a b -- d a b x y ) 0 31 pick - ; inline
|
||||
: SLWI ( d a b -- ) (SLWI) RLWINM ;
|
||||
: SLWI. ( d a b -- ) (SLWI) RLWINM. ;
|
||||
: (SRWI) 32 over - swap 31 ; inline
|
||||
: (SRWI) ( d a b -- d a b x y ) 32 over - swap 31 ; inline
|
||||
: SRWI ( d a b -- ) (SRWI) RLWINM ;
|
||||
: SRWI. ( d a b -- ) (SRWI) RLWINM. ;
|
||||
: LOAD32 ( n r -- ) >r w>h/h r> tuck LIS dup rot ORI ;
|
||||
|
|
|
@ -37,7 +37,7 @@ M:: x86.64 %dispatch ( src temp offset -- )
|
|||
|
||||
M: x86.64 param-reg-1 int-regs param-regs first ;
|
||||
M: x86.64 param-reg-2 int-regs param-regs second ;
|
||||
: param-reg-3 int-regs param-regs third ; inline
|
||||
: param-reg-3 ( -- reg ) int-regs param-regs third ; inline
|
||||
|
||||
M: int-regs return-reg drop RAX ;
|
||||
M: float-regs return-reg drop XMM0 ;
|
||||
|
|
|
@ -79,9 +79,10 @@ big-endian off
|
|||
! compute quotation location
|
||||
temp0 temp1 ADD
|
||||
! load quotation
|
||||
temp0 temp0 array-start-offset [+] MOV
|
||||
! execute branch
|
||||
temp0 quot-xt-offset [+] JMP
|
||||
arg temp0 array-start-offset [+] MOV
|
||||
! execute branch. the quot must be in arg, since it might
|
||||
! not be compiled yet
|
||||
arg quot-xt-offset [+] JMP
|
||||
] rc-absolute-cell rt-immediate 1 rex-length + jit-dispatch jit-define
|
||||
|
||||
: jit->r ( -- )
|
||||
|
|
|
@ -12,7 +12,7 @@ SYMBOL: delimiter
|
|||
|
||||
CHAR: , delimiter set-global
|
||||
|
||||
: delimiter> delimiter get ; inline
|
||||
: delimiter> ( -- delimiter ) delimiter get ; inline
|
||||
|
||||
DEFER: quoted-field ( -- endchar )
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
USING: definitions kernel parser words sequences math.parser
|
||||
namespaces editors io.launcher windows.shell32 io.files
|
||||
io.paths.windows strings unicode.case make ;
|
||||
io.directories.search.windows strings unicode.case make ;
|
||||
IN: editors.editpadlite
|
||||
|
||||
: editpadlite-path ( -- path )
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
USING: definitions kernel parser words sequences math.parser
|
||||
namespaces editors io.launcher windows.shell32 io.files
|
||||
io.paths.windows strings unicode.case make ;
|
||||
io.directories.search.windows strings unicode.case make ;
|
||||
IN: editors.editpadpro
|
||||
|
||||
: editpadpro-path ( -- path )
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences windows.shell32 make io.paths.windows ;
|
||||
namespaces sequences windows.shell32 make
|
||||
io.directories.search.windows ;
|
||||
IN: editors.editplus
|
||||
|
||||
: editplus-path ( -- path )
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences windows.shell32 make io.paths.windows ;
|
||||
namespaces sequences windows.shell32 make
|
||||
io.directories.search.windows ;
|
||||
IN: editors.emeditor
|
||||
|
||||
: emeditor-path ( -- path )
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Kibleur Christophe.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences windows.shell32 io.paths.windows make ;
|
||||
USING: editors io.files io.launcher kernel math.parser make
|
||||
namespaces sequences windows.shell32 io.directories.search.windows ;
|
||||
IN: editors.etexteditor
|
||||
|
||||
: etexteditor-path ( -- str )
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
USING: editors.gvim io.files kernel namespaces sequences
|
||||
windows.shell32 io.paths.windows system ;
|
||||
windows.shell32 io.directories.search.windows system
|
||||
io.pathnames ;
|
||||
IN: editors.gvim.windows
|
||||
|
||||
M: windows gvim-path
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences windows.shell32 make ;
|
||||
namespaces sequences windows.shell32 make io.pathnames ;
|
||||
IN: editors.notepad2
|
||||
|
||||
: notepad2-path ( -- path )
|
||||
\ notepad2-path get-global [
|
||||
"C:\\Windows\\system32\\notepad.exe"
|
||||
windows-directory "system32\\notepad.exe" append-path
|
||||
] unless* ;
|
||||
|
||||
: notepad2 ( file line -- )
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences io.paths.windows make ;
|
||||
namespaces sequences io.directories.search.windows make ;
|
||||
IN: editors.notepadpp
|
||||
|
||||
: notepadpp-path ( -- path )
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2007 Clemens F. Hofreither.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
! clemens.hofreither@gmx.net
|
||||
USING: io.files io.launcher kernel namespaces io.paths.windows
|
||||
USING: io.files io.launcher kernel namespaces io.directories.search.windows
|
||||
math math.parser editors sequences make unicode.case ;
|
||||
IN: editors.scite
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences io.paths.windows make ;
|
||||
namespaces sequences io.directories.search.windows make ;
|
||||
IN: editors.ted-notepad
|
||||
|
||||
: ted-notepad-path ( -- path )
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Doug Coleman
|
|
@ -0,0 +1 @@
|
|||
TextPad editor integration
|
|
@ -0,0 +1,16 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences make io.directories.search
|
||||
io.directories.search.windows ;
|
||||
IN: editors.textpad
|
||||
|
||||
: textpad-path ( -- path )
|
||||
\ textpad-path get-global [
|
||||
"TextPad 5" t [ "TextPad.exe" tail? ] find-in-program-files
|
||||
] unless* ;
|
||||
|
||||
: textpad ( file line -- )
|
||||
[
|
||||
textpad-path , [ , ] [ number>string "(" ",0)" surround , ] bi*
|
||||
] { } make run-detached drop ;
|
||||
|
||||
[ textpad ] edit-hook set-global
|
|
@ -1,5 +1,5 @@
|
|||
USING: editors io.files io.launcher kernel math.parser
|
||||
namespaces sequences io.paths.windows make ;
|
||||
namespaces sequences io.directories.search.windows make ;
|
||||
IN: editors.ultraedit
|
||||
|
||||
: ultraedit-path ( -- path )
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
USING: definitions help help.markup help.syntax io io.files editors words ;
|
||||
USING: definitions editors help help.markup help.syntax io io.files
|
||||
io.pathnames words ;
|
||||
IN: editors.vim
|
||||
|
||||
ARTICLE: { "vim" "vim" } "Vim support"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: editors io.launcher kernel io.paths.windows
|
||||
USING: editors io.launcher kernel io.directories.search.windows
|
||||
math.parser namespaces sequences io.files arrays ;
|
||||
IN: editors.wordpad
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ HELP: <redirect>
|
|||
{ $values { "url" url } { "response" response } }
|
||||
{ $description "Creates a response which redirects the client to the given URL." } ;
|
||||
|
||||
HELP: <secure-only> ( responder -- responder' )
|
||||
{ $values { "responder" "a responder" } { "responder'" "a responder" } }
|
||||
HELP: <secure-only>
|
||||
{ $values { "responder" "a responder" } { "secure-only" "a responder" } }
|
||||
{ $description "Creates a new responder which ensures that the client is connecting via HTTPS before delegating to the underlying responder. If the client is connecting via HTTP, a redirect is sent instead." } ;
|
||||
|
||||
HELP: <secure-redirect>
|
||||
|
|
|
@ -8,7 +8,8 @@ IN: grouping
|
|||
|
||||
TUPLE: chunking-seq { seq read-only } { n read-only } ;
|
||||
|
||||
: check-groups dup 0 <= [ "Invalid group count" throw ] when ; inline
|
||||
: check-groups ( n -- n )
|
||||
dup 0 <= [ "Invalid group count" throw ] when ; inline
|
||||
|
||||
: new-groups ( seq n class -- groups )
|
||||
[ check-groups ] dip boa ; inline
|
||||
|
|
|
@ -87,7 +87,8 @@ M: heap heap-size ( heap -- n )
|
|||
|
||||
GENERIC: heap-compare ( pair1 pair2 heap -- ? )
|
||||
|
||||
: (heap-compare) drop [ key>> ] compare ; inline
|
||||
: (heap-compare) ( pair1 pair2 heap -- <=> )
|
||||
drop [ key>> ] compare ; inline
|
||||
|
||||
M: min-heap heap-compare (heap-compare) +gt+ eq? ;
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ IN: help.lint
|
|||
{
|
||||
[ drop "declared-effect" word-prop not ]
|
||||
[ nip contains-funky-elements? ]
|
||||
[ drop symbol? ]
|
||||
[ drop macro? ]
|
||||
[
|
||||
[ effect-values >array ]
|
||||
|
|
|
@ -4,8 +4,8 @@ html.templates html.templates.chloe.syntax
|
|||
html.templates.chloe.compiler html.templates.chloe.components
|
||||
math xml.data strings quotations namespaces ;
|
||||
|
||||
HELP: <chloe> ( path -- template )
|
||||
{ $values { "path" "a pathname string without the trailing " { $snippet ".xml" } " extension" } { "template" chloe } }
|
||||
HELP: <chloe>
|
||||
{ $values { "path" "a pathname string without the trailing " { $snippet ".xml" } " extension" } { "chloe" chloe } }
|
||||
{ $description "Creates a new Chloe template object which can be passed to " { $link call-template } "." } ;
|
||||
|
||||
HELP: required-attr
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
IN: html.templates.fhtml
|
||||
USING: help.markup help.syntax ;
|
||||
|
||||
HELP: <fhtml> ( path -- fhtml )
|
||||
HELP: <fhtml>
|
||||
{ $values { "path" "a pathname string" } { "fhtml" fhtml } }
|
||||
{ $description "Creates an FHTML template descriptor." } ;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ IN: http.server
|
|||
HELP: trivial-responder
|
||||
{ $description "The class of trivial responders, which output the same response for every request. New instances are created by calling " { $link <trivial-responder> } "." } ;
|
||||
|
||||
HELP: <trivial-responder> ( response -- responder )
|
||||
HELP: <trivial-responder>
|
||||
{ $values { "response" response } { "responder" trivial-responder } }
|
||||
{ $description "Creates a new trivial responder which outputs the same response for every request." } ;
|
||||
|
||||
|
|
|
@ -21,6 +21,9 @@ C: <io-callback> io-callback
|
|||
[ (make-overlapped) ] dip
|
||||
handle>> ptr>> [ over set-OVERLAPPED-offset ] when* ;
|
||||
|
||||
M: winnt FileArgs-overlapped ( port -- overlapped )
|
||||
make-overlapped ;
|
||||
|
||||
: <completion-port> ( handle existing -- handle )
|
||||
f 1 CreateIoCompletionPort dup win32-error=0/f ;
|
||||
|
||||
|
|
|
@ -56,4 +56,4 @@ PRIVATE>
|
|||
: find-in-directories ( directories bfs? quot -- path' )
|
||||
'[ _ _ find-file ] attempt-all ; inline
|
||||
|
||||
os windows? [ "io.paths.windows" require ] when
|
||||
os windows? [ "io.directories.search.windows" require ] when
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays fry io.pathnames kernel sequences windows.shell32 ;
|
||||
IN: io.paths
|
||||
USING: arrays fry io.pathnames kernel sequences windows.shell32
|
||||
io.directories.search ;
|
||||
IN: io.directories.search.windows
|
||||
|
||||
: program-files-directories ( -- array )
|
||||
program-files program-files-x86 2array ; inline
|
||||
|
|
|
@ -11,14 +11,15 @@ M: unix cwd ( -- path )
|
|||
|
||||
M: unix cd ( path -- ) [ chdir ] unix-system-call drop ;
|
||||
|
||||
: read-flags O_RDONLY ; inline
|
||||
: read-flags ( -- n ) O_RDONLY ; inline
|
||||
|
||||
: open-read ( path -- fd ) O_RDONLY file-mode open-file ;
|
||||
|
||||
M: unix (file-reader) ( path -- stream )
|
||||
open-read <fd> init-fd <input-port> ;
|
||||
|
||||
: write-flags { O_WRONLY O_CREAT O_TRUNC } flags ; inline
|
||||
: write-flags ( -- n )
|
||||
{ O_WRONLY O_CREAT O_TRUNC } flags ; inline
|
||||
|
||||
: open-write ( path -- fd )
|
||||
write-flags file-mode open-file ;
|
||||
|
@ -26,7 +27,8 @@ M: unix (file-reader) ( path -- stream )
|
|||
M: unix (file-writer) ( path -- stream )
|
||||
open-write <fd> init-fd <output-port> ;
|
||||
|
||||
: append-flags { O_WRONLY O_APPEND O_CREAT } flags ; inline
|
||||
: append-flags ( -- n )
|
||||
{ O_WRONLY O_APPEND O_CREAT } flags ; inline
|
||||
|
||||
: open-append ( path -- fd )
|
||||
[
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
USING: continuations destructors io.buffers io.files io.backend
|
||||
io.timeouts io.ports io.pathnames io.files.private io.backend.windows
|
||||
io.files.windows io.backend.windows.nt io.encodings.utf16n
|
||||
windows windows.kernel32 kernel libc math threads system
|
||||
environment alien.c-types alien.arrays alien.strings sequences
|
||||
combinators combinators.short-circuit ascii splitting alien
|
||||
strings assocs namespaces make accessors tr ;
|
||||
io.timeouts io.ports io.pathnames io.files.private
|
||||
io.backend.windows io.files.windows io.encodings.utf16n windows
|
||||
windows.kernel32 kernel libc math threads system environment
|
||||
alien.c-types alien.arrays alien.strings sequences combinators
|
||||
combinators.short-circuit ascii splitting alien strings assocs
|
||||
namespaces make accessors tr ;
|
||||
IN: io.files.windows.nt
|
||||
|
||||
M: winnt cwd
|
||||
|
@ -44,9 +44,6 @@ M: winnt normalize-path ( string -- string' )
|
|||
M: winnt CreateFile-flags ( DWORD -- DWORD )
|
||||
FILE_FLAG_OVERLAPPED bitor ;
|
||||
|
||||
M: winnt FileArgs-overlapped ( port -- overlapped )
|
||||
make-overlapped ;
|
||||
|
||||
M: winnt open-append
|
||||
0 ! [ dup file-info size>> ] [ drop 0 ] recover
|
||||
[ (open-append) ] dip >>ptr ;
|
||||
|
|
|
@ -86,7 +86,7 @@ ARTICLE: "ssl-contexts" "Secure socket contexts"
|
|||
HELP: secure
|
||||
{ $class-description "The class of secure socket addresses." } ;
|
||||
|
||||
HELP: <secure> ( addrspec -- secure )
|
||||
HELP: <secure>
|
||||
{ $values { "addrspec" "an address specifier" } { "secure" secure } }
|
||||
{ $description "Creates a new secure socket address, which can then be passed to " { $link <client> } " or " { $link <server> } "." } ;
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ HELP: input
|
|||
{ $code "\"2 3 + .\" dup <input> write-object nl" }
|
||||
} ;
|
||||
|
||||
HELP: <input> ( string -- input )
|
||||
HELP: <input>
|
||||
{ $values { "string" string } { "input" input } }
|
||||
{ $description "Creates a new " { $link input } "." } ;
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
USING: slots.private ;
|
||||
IN: locals.backend
|
||||
|
||||
: local-value 2 slot ; inline
|
||||
: local-value ( box -- value ) 2 slot ; inline
|
||||
|
||||
: set-local-value 2 set-slot ; inline
|
||||
: set-local-value ( value box -- ) 2 set-slot ; inline
|
||||
|
|
|
@ -66,7 +66,10 @@ DEFER: byte-bit-count
|
|||
\ byte-bit-count
|
||||
256 [
|
||||
0 swap [ [ 1+ ] when ] each-bit
|
||||
] B{ } map-as '[ HEX: ff bitand _ nth-unsafe ] define-inline
|
||||
] B{ } map-as '[ HEX: ff bitand _ nth-unsafe ]
|
||||
(( byte -- table )) define-declared
|
||||
|
||||
\ byte-bit-count make-inline
|
||||
|
||||
>>
|
||||
|
||||
|
|
|
@ -46,7 +46,8 @@ M: real sqrt
|
|||
|
||||
GENERIC# ^n 1 ( z w -- z^w )
|
||||
|
||||
: (^n) 1 swap [ [ dupd * ] when [ sq ] dip ] each-bit nip ; inline
|
||||
: (^n) ( z w -- z^w )
|
||||
1 swap [ [ dupd * ] when [ sq ] dip ] each-bit nip ; inline
|
||||
|
||||
M: integer ^n
|
||||
[ factor-2s ] dip [ (^n) ] keep rot * shift ;
|
||||
|
|
|
@ -11,7 +11,7 @@ HELP: rect
|
|||
"Rectangles are constructed by calling " { $link <rect> } " and " { $link <extent-rect> } "."
|
||||
} ;
|
||||
|
||||
HELP: <rect> ( loc dim -- rect )
|
||||
HELP: <rect>
|
||||
{ $values { "loc" "a pair of integers" } { "dim" "a pair of integers" } { "rect" "a new " { $link rect } } }
|
||||
{ $description "Creates a new rectangle with the specified top-left location and dimensions." } ;
|
||||
|
||||
|
@ -23,7 +23,7 @@ HELP: rect-bounds
|
|||
|
||||
{ rect-bounds rect-extent } related-words
|
||||
|
||||
HELP: <extent-rect> ( loc ext -- rect )
|
||||
HELP: <extent-rect>
|
||||
{ $values { "loc" "a pair of integers" } { "ext" "a pair of integers" } { "rect" "a new " { $link rect } } }
|
||||
{ $description "Creates a new rectangle with the specified top-left and bottom-right corner locations." } ;
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ $nl
|
|||
$nl
|
||||
"Intervals are created by calling " { $link [a,b] } ", " { $link (a,b) } ", " { $link [a,b) } ", " { $link (a,b] } " or " { $link [a,a] } "." } ;
|
||||
|
||||
HELP: <interval> ( from to -- interval )
|
||||
HELP: <interval>
|
||||
{ $values { "from" "a " { $snippet "{ point included? }" } " pair" } { "to" "a " { $snippet "{ point included? }" } " pair" } { "interval" interval } }
|
||||
{ $description "Creates a new interval. Usually it is more convenient to create intervals using one of the following words instead:"
|
||||
{ $list
|
||||
|
|
|
@ -10,7 +10,7 @@ IN: math.quaternions
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: ** conjugate * ; inline
|
||||
: ** ( x y -- z ) conjugate * ; inline
|
||||
|
||||
: 2q ( u v -- u' u'' v' v'' ) [ first2 ] bi@ ; inline
|
||||
|
||||
|
|
|
@ -20,11 +20,11 @@ M: range nth-unsafe ( n range -- obj )
|
|||
|
||||
INSTANCE: range immutable-sequence
|
||||
|
||||
: twiddle 2dup > -1 1 ? ; inline
|
||||
: twiddle ( a b -- a b step ) 2dup > -1 1 ? ; inline
|
||||
|
||||
: (a, dup [ + ] curry 2dip ; inline
|
||||
: (a, ( a b step -- a' b' step ) dup [ + ] curry 2dip ; inline
|
||||
|
||||
: ,b) dup [ - ] curry dip ; inline
|
||||
: ,b) ( a b step -- a' b' step ) dup [ - ] curry dip ; inline
|
||||
|
||||
: [a,b] ( a b -- range ) twiddle <range> ; inline
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ $nl
|
|||
$nl
|
||||
"Mirrors are created by calling " { $link <mirror> } " or " { $link make-mirror } "." } ;
|
||||
|
||||
HELP: <mirror> ( object -- mirror )
|
||||
HELP: <mirror>
|
||||
{ $values { "object" object } { "mirror" mirror } }
|
||||
{ $description "Creates a " { $link mirror } " reflecting an object." }
|
||||
{ $examples
|
||||
|
|
|
@ -22,7 +22,8 @@ PRIVATE>
|
|||
|
||||
: STRING:
|
||||
CREATE-WORD
|
||||
parse-here 1quotation define-inline ; parsing
|
||||
parse-here 1quotation
|
||||
(( -- string )) define-inline ; parsing
|
||||
|
||||
<PRIVATE
|
||||
: (parse-multiline-string) ( start-index end-text -- end-index )
|
||||
|
|
|
@ -12,7 +12,7 @@ TUPLE: nibble-array
|
|||
|
||||
: nibble BIN: 1111 ; inline
|
||||
|
||||
: nibbles>bytes 1 + 2/ ; inline
|
||||
: nibbles>bytes ( m -- n ) 1 + 2/ ; inline
|
||||
|
||||
: byte/nibble ( n -- shift n' )
|
||||
[ 1 bitand 2 shift ] [ -1 shift ] bi ; inline
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,7 +2,8 @@
|
|||
! Portions copyright (C) 2008 Slava Pestov
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien alien.syntax combinators kernel system namespaces
|
||||
assocs parser lexer sequences words quotations math.bitwise ;
|
||||
assocs parser lexer sequences words quotations math.bitwise
|
||||
alias constants ;
|
||||
|
||||
IN: openssl.libssl
|
||||
|
||||
|
@ -13,64 +14,64 @@ IN: openssl.libssl
|
|||
{ [ os unix? ] [ "libssl" "libssl.so" "cdecl" add-library ] }
|
||||
} cond >>
|
||||
|
||||
: X509_FILETYPE_PEM 1 ; inline
|
||||
: X509_FILETYPE_ASN1 2 ; inline
|
||||
: X509_FILETYPE_DEFAULT 3 ; inline
|
||||
CONSTANT: X509_FILETYPE_PEM 1
|
||||
CONSTANT: X509_FILETYPE_ASN1 2
|
||||
CONSTANT: X509_FILETYPE_DEFAULT 3
|
||||
|
||||
: SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 ; inline
|
||||
: SSL_FILETYPE_PEM X509_FILETYPE_PEM ; inline
|
||||
ALIAS: SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1
|
||||
ALIAS: SSL_FILETYPE_PEM X509_FILETYPE_PEM
|
||||
|
||||
: SSL_CTRL_NEED_TMP_RSA 1 ; inline
|
||||
: SSL_CTRL_SET_TMP_RSA 2 ; inline
|
||||
: SSL_CTRL_SET_TMP_DH 3 ; inline
|
||||
: SSL_CTRL_SET_TMP_RSA_CB 4 ; inline
|
||||
: SSL_CTRL_SET_TMP_DH_CB 5 ; inline
|
||||
CONSTANT: SSL_CTRL_NEED_TMP_RSA 1
|
||||
CONSTANT: SSL_CTRL_SET_TMP_RSA 2
|
||||
CONSTANT: SSL_CTRL_SET_TMP_DH 3
|
||||
CONSTANT: SSL_CTRL_SET_TMP_RSA_CB 4
|
||||
CONSTANT: SSL_CTRL_SET_TMP_DH_CB 5
|
||||
|
||||
: SSL_CTRL_GET_SESSION_REUSED 6 ; inline
|
||||
: SSL_CTRL_GET_CLIENT_CERT_REQUEST 7 ; inline
|
||||
: SSL_CTRL_GET_NUM_RENEGOTIATIONS 8 ; inline
|
||||
: SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 9 ; inline
|
||||
: SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 10 ; inline
|
||||
: SSL_CTRL_GET_FLAGS 11 ; inline
|
||||
: SSL_CTRL_EXTRA_CHAIN_CERT 12 ; inline
|
||||
CONSTANT: SSL_CTRL_GET_SESSION_REUSED 6
|
||||
CONSTANT: SSL_CTRL_GET_CLIENT_CERT_REQUEST 7
|
||||
CONSTANT: SSL_CTRL_GET_NUM_RENEGOTIATIONS 8
|
||||
CONSTANT: SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 9
|
||||
CONSTANT: SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 10
|
||||
CONSTANT: SSL_CTRL_GET_FLAGS 11
|
||||
CONSTANT: SSL_CTRL_EXTRA_CHAIN_CERT 12
|
||||
|
||||
: SSL_CTRL_SET_MSG_CALLBACK 13 ; inline
|
||||
: SSL_CTRL_SET_MSG_CALLBACK_ARG 14 ; inline
|
||||
CONSTANT: SSL_CTRL_SET_MSG_CALLBACK 13
|
||||
CONSTANT: SSL_CTRL_SET_MSG_CALLBACK_ARG 14
|
||||
|
||||
: SSL_CTRL_SESS_NUMBER 20 ; inline
|
||||
: SSL_CTRL_SESS_CONNECT 21 ; inline
|
||||
: SSL_CTRL_SESS_CONNECT_GOOD 22 ; inline
|
||||
: SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 ; inline
|
||||
: SSL_CTRL_SESS_ACCEPT 24 ; inline
|
||||
: SSL_CTRL_SESS_ACCEPT_GOOD 25 ; inline
|
||||
: SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 ; inline
|
||||
: SSL_CTRL_SESS_HIT 27 ; inline
|
||||
: SSL_CTRL_SESS_CB_HIT 28 ; inline
|
||||
: SSL_CTRL_SESS_MISSES 29 ; inline
|
||||
: SSL_CTRL_SESS_TIMEOUTS 30 ; inline
|
||||
: SSL_CTRL_SESS_CACHE_FULL 31 ; inline
|
||||
: SSL_CTRL_OPTIONS 32 ; inline
|
||||
: SSL_CTRL_MODE 33 ; inline
|
||||
CONSTANT: SSL_CTRL_SESS_NUMBER 20
|
||||
CONSTANT: SSL_CTRL_SESS_CONNECT 21
|
||||
CONSTANT: SSL_CTRL_SESS_CONNECT_GOOD 22
|
||||
CONSTANT: SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23
|
||||
CONSTANT: SSL_CTRL_SESS_ACCEPT 24
|
||||
CONSTANT: SSL_CTRL_SESS_ACCEPT_GOOD 25
|
||||
CONSTANT: SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26
|
||||
CONSTANT: SSL_CTRL_SESS_HIT 27
|
||||
CONSTANT: SSL_CTRL_SESS_CB_HIT 28
|
||||
CONSTANT: SSL_CTRL_SESS_MISSES 29
|
||||
CONSTANT: SSL_CTRL_SESS_TIMEOUTS 30
|
||||
CONSTANT: SSL_CTRL_SESS_CACHE_FULL 31
|
||||
CONSTANT: SSL_CTRL_OPTIONS 32
|
||||
CONSTANT: SSL_CTRL_MODE 33
|
||||
|
||||
: SSL_CTRL_GET_READ_AHEAD 40 ; inline
|
||||
: SSL_CTRL_SET_READ_AHEAD 41 ; inline
|
||||
: SSL_CTRL_SET_SESS_CACHE_SIZE 42 ; inline
|
||||
: SSL_CTRL_GET_SESS_CACHE_SIZE 43 ; inline
|
||||
: SSL_CTRL_SET_SESS_CACHE_MODE 44 ; inline
|
||||
: SSL_CTRL_GET_SESS_CACHE_MODE 45 ; inline
|
||||
CONSTANT: SSL_CTRL_GET_READ_AHEAD 40
|
||||
CONSTANT: SSL_CTRL_SET_READ_AHEAD 41
|
||||
CONSTANT: SSL_CTRL_SET_SESS_CACHE_SIZE 42
|
||||
CONSTANT: SSL_CTRL_GET_SESS_CACHE_SIZE 43
|
||||
CONSTANT: SSL_CTRL_SET_SESS_CACHE_MODE 44
|
||||
CONSTANT: SSL_CTRL_GET_SESS_CACHE_MODE 45
|
||||
|
||||
: SSL_CTRL_GET_MAX_CERT_LIST 50 ; inline
|
||||
: SSL_CTRL_SET_MAX_CERT_LIST 51 ; inline
|
||||
CONSTANT: SSL_CTRL_GET_MAX_CERT_LIST 50
|
||||
CONSTANT: SSL_CTRL_SET_MAX_CERT_LIST 51
|
||||
|
||||
: SSL_ERROR_NONE 0 ; inline
|
||||
: SSL_ERROR_SSL 1 ; inline
|
||||
: SSL_ERROR_WANT_READ 2 ; inline
|
||||
: SSL_ERROR_WANT_WRITE 3 ; inline
|
||||
: SSL_ERROR_WANT_X509_LOOKUP 4 ; inline
|
||||
: SSL_ERROR_SYSCALL 5 ; inline ! consult errno for details
|
||||
: SSL_ERROR_ZERO_RETURN 6 ; inline
|
||||
: SSL_ERROR_WANT_CONNECT 7 ; inline
|
||||
: SSL_ERROR_WANT_ACCEPT 8 ; inline
|
||||
CONSTANT: SSL_ERROR_NONE 0
|
||||
CONSTANT: SSL_ERROR_SSL 1
|
||||
CONSTANT: SSL_ERROR_WANT_READ 2
|
||||
CONSTANT: SSL_ERROR_WANT_WRITE 3
|
||||
CONSTANT: SSL_ERROR_WANT_X509_LOOKUP 4
|
||||
CONSTANT: SSL_ERROR_SYSCALL 5 ! consult errno for details
|
||||
CONSTANT: SSL_ERROR_ZERO_RETURN 6
|
||||
CONSTANT: SSL_ERROR_WANT_CONNECT 7
|
||||
CONSTANT: SSL_ERROR_WANT_ACCEPT 8
|
||||
|
||||
! Error messages table
|
||||
: error-messages ( -- hash )
|
||||
|
@ -157,8 +158,8 @@ FUNCTION: int SSL_read ( SSL* ssl, void* buf, int num ) ;
|
|||
|
||||
FUNCTION: int SSL_shutdown ( SSL* ssl ) ;
|
||||
|
||||
: SSL_SENT_SHUTDOWN 1 ;
|
||||
: SSL_RECEIVED_SHUTDOWN 2 ;
|
||||
CONSTANT: SSL_SENT_SHUTDOWN 1
|
||||
CONSTANT: SSL_RECEIVED_SHUTDOWN 2
|
||||
|
||||
FUNCTION: int SSL_get_shutdown ( SSL* ssl ) ;
|
||||
|
||||
|
@ -172,10 +173,10 @@ FUNCTION: void SSL_SESSION_free ( SSL_SESSION* ses ) ;
|
|||
|
||||
FUNCTION: int SSL_want ( SSL* ssl ) ;
|
||||
|
||||
: SSL_NOTHING 1 ; inline
|
||||
: SSL_WRITING 2 ; inline
|
||||
: SSL_READING 3 ; inline
|
||||
: SSL_X509_LOOKUP 4 ; inline
|
||||
CONSTANT: SSL_NOTHING 1
|
||||
CONSTANT: SSL_WRITING 2
|
||||
CONSTANT: SSL_READING 3
|
||||
CONSTANT: SSL_X509_LOOKUP 4
|
||||
|
||||
FUNCTION: long SSL_get_verify_result ( SSL* ssl ) ;
|
||||
|
||||
|
@ -199,10 +200,10 @@ FUNCTION: int SSL_CTX_load_verify_locations ( SSL_CTX* ctx, char* CAfile,
|
|||
|
||||
FUNCTION: int SSL_CTX_set_default_verify_paths ( SSL_CTX* ctx ) ;
|
||||
|
||||
: SSL_VERIFY_NONE 0 ; inline
|
||||
: SSL_VERIFY_PEER 1 ; inline
|
||||
: SSL_VERIFY_FAIL_IF_NO_PEER_CERT 2 ; inline
|
||||
: SSL_VERIFY_CLIENT_ONCE 4 ; inline
|
||||
CONSTANT: SSL_VERIFY_NONE 0
|
||||
CONSTANT: SSL_VERIFY_PEER 1
|
||||
CONSTANT: SSL_VERIFY_FAIL_IF_NO_PEER_CERT 2
|
||||
CONSTANT: SSL_VERIFY_CLIENT_ONCE 4
|
||||
|
||||
FUNCTION: void SSL_CTX_set_verify ( SSL_CTX* ctx, int mode, void* callback ) ;
|
||||
|
||||
|
@ -242,16 +243,16 @@ FUNCTION: void* BIO_f_ssl ( ) ;
|
|||
: SSL_CTX_set_session_cache_mode ( ctx mode -- n )
|
||||
[ SSL_CTRL_SET_SESS_CACHE_MODE ] dip f SSL_CTX_ctrl ;
|
||||
|
||||
: SSL_SESS_CACHE_OFF HEX: 0000 ; inline
|
||||
: SSL_SESS_CACHE_CLIENT HEX: 0001 ; inline
|
||||
: SSL_SESS_CACHE_SERVER HEX: 0002 ; inline
|
||||
CONSTANT: SSL_SESS_CACHE_OFF HEX: 0000
|
||||
CONSTANT: SSL_SESS_CACHE_CLIENT HEX: 0001
|
||||
CONSTANT: SSL_SESS_CACHE_SERVER HEX: 0002
|
||||
|
||||
: SSL_SESS_CACHE_BOTH ( -- n )
|
||||
{ SSL_SESS_CACHE_CLIENT SSL_SESS_CACHE_SERVER } flags ; inline
|
||||
|
||||
: SSL_SESS_CACHE_NO_AUTO_CLEAR HEX: 0080 ; inline
|
||||
: SSL_SESS_CACHE_NO_INTERNAL_LOOKUP HEX: 0100 ; inline
|
||||
: SSL_SESS_CACHE_NO_INTERNAL_STORE HEX: 0200 ; inline
|
||||
CONSTANT: SSL_SESS_CACHE_NO_AUTO_CLEAR HEX: 0080
|
||||
CONSTANT: SSL_SESS_CACHE_NO_INTERNAL_LOOKUP HEX: 0100
|
||||
CONSTANT: SSL_SESS_CACHE_NO_INTERNAL_STORE HEX: 0200
|
||||
|
||||
: SSL_SESS_CACHE_NO_INTERNAL ( -- n )
|
||||
{ SSL_SESS_CACHE_NO_INTERNAL_LOOKUP SSL_SESS_CACHE_NO_INTERNAL_STORE } flags ; inline
|
||||
|
@ -282,8 +283,9 @@ H{ } clone verify-messages set-global
|
|||
: X509_V_:
|
||||
scan "X509_V_" prepend create-in
|
||||
scan-word
|
||||
[ 1quotation define-inline ]
|
||||
[ verify-messages get set-at ] 2bi ; parsing
|
||||
[ 1quotation (( -- value )) define-inline ]
|
||||
[ verify-messages get set-at ]
|
||||
2bi ; parsing
|
||||
|
||||
>>
|
||||
|
||||
|
@ -333,4 +335,4 @@ X509_V_: ERR_APPLICATION_VERIFICATION 50
|
|||
! obj_mac.h
|
||||
! ===============================================
|
||||
|
||||
: NID_commonName 13 ; inline
|
||||
CONSTANT: NID_commonName 13
|
||||
|
|
|
@ -22,9 +22,9 @@ M: persistent-vector length count>> ;
|
|||
|
||||
: node-size 32 ; inline
|
||||
|
||||
: node-mask node-size mod ; inline
|
||||
: node-mask ( m -- n ) node-size mod ; inline
|
||||
|
||||
: node-shift -5 * shift ; inline
|
||||
: node-shift ( m n -- x ) -5 * shift ; inline
|
||||
|
||||
: node-nth ( i node -- obj )
|
||||
[ node-mask ] [ children>> ] bi* nth ;
|
||||
|
|
|
@ -5,7 +5,7 @@ IN: refs
|
|||
|
||||
TUPLE: ref assoc key ;
|
||||
|
||||
: >ref< [ key>> ] [ assoc>> ] bi ; inline
|
||||
: >ref< ( ref -- key value ) [ key>> ] [ assoc>> ] bi ; inline
|
||||
|
||||
: delete-ref ( ref -- ) >ref< delete-at ;
|
||||
GENERIC: get-ref ( ref -- obj )
|
||||
|
|
|
@ -10,6 +10,6 @@ $nl
|
|||
|
||||
ABOUT: "search-deques"
|
||||
|
||||
HELP: <search-deque> ( assoc deque -- search-deque )
|
||||
HELP: <search-deque>
|
||||
{ $values { "assoc" assoc } { "deque" deque } { "search-deque" search-deque } }
|
||||
{ $description "Creates a new " { $link search-deque } "." } ;
|
||||
|
|
|
@ -3,7 +3,8 @@ IN: sequences.next
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: iterate-seq [ dup length swap ] dip ; inline
|
||||
: iterate-seq ( seq quot -- i seq quot )
|
||||
[ [ length ] keep ] dip ; inline
|
||||
|
||||
: (map-next) ( i seq quot -- )
|
||||
! this uses O(n) more bounds checks than is really necessary
|
||||
|
|
|
@ -25,7 +25,7 @@ HELP: no-auth
|
|||
HELP: plain-auth
|
||||
{ $class-description "If the " { $link smtp-auth } " variable is set to this value, plain authentication will be performed, with the username and password stored in the " { $slot "username" } " and " { $slot "password" } " slots of the tuple sent to the server as plain-text." } ;
|
||||
|
||||
HELP: <plain-auth> ( username password -- plain-auth )
|
||||
HELP: <plain-auth>
|
||||
{ $values { "username" string } { "password" string } { "plain-auth" plain-auth } }
|
||||
{ $description "Creates a new " { $link plain-auth } " instance." } ;
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ WHERE
|
|||
|
||||
TUPLE: V { underlying A } { length array-capacity } ;
|
||||
|
||||
: <V> <A> execute 0 V boa ; inline
|
||||
: <V> ( capacity -- vector ) <A> execute 0 V boa ; inline
|
||||
|
||||
M: V like
|
||||
drop dup V instance? [
|
||||
|
@ -31,7 +31,7 @@ M: A new-resizable drop <V> execute ;
|
|||
|
||||
M: V equal? over V instance? [ sequence= ] [ 2drop f ] if ;
|
||||
|
||||
: >V V new clone-like ; inline
|
||||
: >V ( seq -- vector ) V new clone-like ; inline
|
||||
|
||||
M: V pprint-delims drop V{ \ } ;
|
||||
|
||||
|
|
|
@ -145,7 +145,6 @@ M: object apply-object push-literal ;
|
|||
|
||||
: effect-required? ( word -- ? )
|
||||
{
|
||||
{ [ dup inline? ] [ drop f ] }
|
||||
{ [ dup deferred? ] [ drop f ] }
|
||||
{ [ dup crossref? not ] [ drop f ] }
|
||||
[ def>> [ word? ] contains? ]
|
||||
|
|
|
@ -20,8 +20,9 @@ TYPEDEF: char[592] ud
|
|||
FUNCTION: void ud_translate_intel ( ud* u ) ;
|
||||
FUNCTION: void ud_translate_att ( ud* u ) ;
|
||||
|
||||
: UD_SYN_INTEL &: ud_translate_intel ; inline
|
||||
: UD_SYN_ATT &: ud_translate_att ; inline
|
||||
: 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
|
||||
|
|
|
@ -78,9 +78,9 @@ SYMBOL: dpi
|
|||
|
||||
72 dpi set-global
|
||||
|
||||
: ft-floor -6 shift ; inline
|
||||
: ft-floor ( m -- n ) -6 shift ; inline
|
||||
|
||||
: ft-ceil 63 + -64 bitand -6 shift ; inline
|
||||
: ft-ceil ( m -- n ) 63 + -64 bitand -6 shift ; inline
|
||||
|
||||
: font-units>pixels ( n font -- n )
|
||||
face-size face-size-y-scale FT_MulFix ;
|
||||
|
|
|
@ -11,7 +11,7 @@ C: <grid-lines> grid-lines
|
|||
|
||||
SYMBOL: grid-dim
|
||||
|
||||
: half-gap grid get gap>> [ 2/ ] map ; inline
|
||||
: half-gap ( -- gap ) grid get gap>> [ 2/ ] map ; inline
|
||||
|
||||
: grid-line-from/to ( orientation point -- from to )
|
||||
half-gap v-
|
||||
|
|
|
@ -49,7 +49,7 @@ HELP: <pane-control>
|
|||
HELP: pane-stream
|
||||
{ $class-description "Pane streams implement the portion of the " { $link "stream-protocol" } " responsible for output of text, including full support for " { $link "styles" } ". Pane streams also support direct output of gadgets via " { $link write-gadget } " and " { $link print-gadget } ". Pane streams are created by calling " { $link <pane-stream> } "." } ;
|
||||
|
||||
HELP: <pane-stream> ( pane -- stream )
|
||||
HELP: <pane-stream>
|
||||
{ $values { "pane" pane } { "stream" "a new " { $link pane-stream } } }
|
||||
{ $description "Creates a new " { $link pane-stream } " for writing to " { $snippet "pane" } "." } ;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2005, 2006 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.syntax combinators system vocabs.loader ;
|
||||
USING: alien.syntax combinators system vocabs.loader alias ;
|
||||
IN: unix
|
||||
|
||||
: MAXPATHLEN 1024 ; inline
|
||||
|
@ -14,7 +14,7 @@ IN: unix
|
|||
: O_TRUNC HEX: 0400 ; inline
|
||||
: O_EXCL HEX: 0800 ; inline
|
||||
: O_NOCTTY HEX: 20000 ; inline
|
||||
: O_NDELAY O_NONBLOCK ; inline
|
||||
ALIAS: O_NDELAY O_NONBLOCK
|
||||
|
||||
: SOL_SOCKET HEX: ffff ; inline
|
||||
: SO_REUSEADDR HEX: 4 ; inline
|
||||
|
@ -69,10 +69,10 @@ C-STRUCT: passwd
|
|||
: AF_INET 2 ; inline
|
||||
: AF_INET6 30 ; inline
|
||||
|
||||
: PF_UNSPEC AF_UNSPEC ; inline
|
||||
: PF_UNIX AF_UNIX ; inline
|
||||
: PF_INET AF_INET ; inline
|
||||
: PF_INET6 AF_INET6 ; inline
|
||||
ALIAS: PF_UNSPEC AF_UNSPEC
|
||||
ALIAS: PF_UNIX AF_UNIX
|
||||
ALIAS: PF_INET AF_INET
|
||||
ALIAS: PF_INET6 AF_INET6
|
||||
|
||||
: IPPROTO_TCP 6 ; inline
|
||||
: IPPROTO_UDP 17 ; inline
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: alien.syntax unix.time ;
|
||||
USING: alien.syntax unix.time alias ;
|
||||
IN: unix
|
||||
|
||||
: FD_SETSIZE 1024 ; inline
|
||||
|
@ -74,7 +74,7 @@ C-STRUCT: dirent
|
|||
: EDOM 33 ; inline
|
||||
: ERANGE 34 ; inline
|
||||
: EAGAIN 35 ; inline
|
||||
: EWOULDBLOCK EAGAIN ; inline
|
||||
ALIAS: EWOULDBLOCK EAGAIN
|
||||
: EINPROGRESS 36 ; inline
|
||||
: EALREADY 37 ; inline
|
||||
: ENOTSOCK 38 ; inline
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.syntax system sequences vocabs.loader words
|
||||
accessors ;
|
||||
accessors alias constants ;
|
||||
IN: unix.kqueue
|
||||
|
||||
<< "unix.kqueue." os name>> append require >>
|
||||
|
@ -9,47 +9,47 @@ IN: unix.kqueue
|
|||
FUNCTION: int kqueue ( ) ;
|
||||
|
||||
! actions
|
||||
: EV_ADD HEX: 1 ; inline ! add event to kq (implies enable)
|
||||
: EV_DELETE HEX: 2 ; inline ! delete event from kq
|
||||
: EV_ENABLE HEX: 4 ; inline ! enable event
|
||||
: EV_DISABLE HEX: 8 ; inline ! disable event (not reported)
|
||||
CONSTANT: EV_ADD HEX: 1 ! add event to kq (implies enable)
|
||||
CONSTANT: EV_DELETE HEX: 2 ! delete event from kq
|
||||
CONSTANT: EV_ENABLE HEX: 4 ! enable event
|
||||
CONSTANT: EV_DISABLE HEX: 8 ! disable event (not reported)
|
||||
|
||||
! flags
|
||||
: EV_ONESHOT HEX: 10 ; inline ! only report one occurrence
|
||||
: EV_CLEAR HEX: 20 ; inline ! clear event state after reporting
|
||||
CONSTANT: EV_ONESHOT HEX: 10 ! only report one occurrence
|
||||
CONSTANT: EV_CLEAR HEX: 20 ! clear event state after reporting
|
||||
|
||||
: EV_SYSFLAGS HEX: f000 ; inline ! reserved by system
|
||||
: EV_FLAG0 HEX: 1000 ; inline ! filter-specific flag
|
||||
: EV_FLAG1 HEX: 2000 ; inline ! filter-specific flag
|
||||
CONSTANT: EV_SYSFLAGS HEX: f000 ! reserved by system
|
||||
CONSTANT: EV_FLAG0 HEX: 1000 ! filter-specific flag
|
||||
CONSTANT: EV_FLAG1 HEX: 2000 ! filter-specific flag
|
||||
|
||||
! returned values
|
||||
: EV_EOF HEX: 8000 ; inline ! EOF detected
|
||||
: EV_ERROR HEX: 4000 ; inline ! error, data contains errno
|
||||
CONSTANT: EV_EOF HEX: 8000 ! EOF detected
|
||||
CONSTANT: EV_ERROR HEX: 4000 ! error, data contains errno
|
||||
|
||||
: EV_POLL EV_FLAG0 ; inline
|
||||
: EV_OOBAND EV_FLAG1 ; inline
|
||||
ALIAS: EV_POLL EV_FLAG0
|
||||
ALIAS: EV_OOBAND EV_FLAG1
|
||||
|
||||
: NOTE_LOWAT HEX: 00000001 ; inline ! low water mark
|
||||
CONSTANT: NOTE_LOWAT HEX: 00000001 ! low water mark
|
||||
|
||||
: NOTE_DELETE HEX: 00000001 ; inline ! vnode was removed
|
||||
: NOTE_WRITE HEX: 00000002 ; inline ! data contents changed
|
||||
: NOTE_EXTEND HEX: 00000004 ; inline ! size increased
|
||||
: NOTE_ATTRIB HEX: 00000008 ; inline ! attributes changed
|
||||
: NOTE_LINK HEX: 00000010 ; inline ! link count changed
|
||||
: NOTE_RENAME HEX: 00000020 ; inline ! vnode was renamed
|
||||
: NOTE_REVOKE HEX: 00000040 ; inline ! vnode access was revoked
|
||||
CONSTANT: NOTE_DELETE HEX: 00000001 ! vnode was removed
|
||||
CONSTANT: NOTE_WRITE HEX: 00000002 ! data contents changed
|
||||
CONSTANT: NOTE_EXTEND HEX: 00000004 ! size increased
|
||||
CONSTANT: NOTE_ATTRIB HEX: 00000008 ! attributes changed
|
||||
CONSTANT: NOTE_LINK HEX: 00000010 ! link count changed
|
||||
CONSTANT: NOTE_RENAME HEX: 00000020 ! vnode was renamed
|
||||
CONSTANT: NOTE_REVOKE HEX: 00000040 ! vnode access was revoked
|
||||
|
||||
: NOTE_EXIT HEX: 80000000 ; inline ! process exited
|
||||
: NOTE_FORK HEX: 40000000 ; inline ! process forked
|
||||
: NOTE_EXEC HEX: 20000000 ; inline ! process exec'd
|
||||
: NOTE_PCTRLMASK HEX: f0000000 ; inline ! mask for hint bits
|
||||
: NOTE_PDATAMASK HEX: 000fffff ; inline ! mask for pid
|
||||
CONSTANT: NOTE_EXIT HEX: 80000000 ! process exited
|
||||
CONSTANT: NOTE_FORK HEX: 40000000 ! process forked
|
||||
CONSTANT: NOTE_EXEC HEX: 20000000 ! process exec'd
|
||||
CONSTANT: NOTE_PCTRLMASK HEX: f0000000 ! mask for hint bits
|
||||
CONSTANT: NOTE_PDATAMASK HEX: 000fffff ! mask for pid
|
||||
|
||||
: NOTE_SECONDS HEX: 00000001 ; inline ! data is seconds
|
||||
: NOTE_USECONDS HEX: 00000002 ; inline ! data is microseconds
|
||||
: NOTE_NSECONDS HEX: 00000004 ; inline ! data is nanoseconds
|
||||
: NOTE_ABSOLUTE HEX: 00000008 ; inline ! absolute timeout
|
||||
CONSTANT: NOTE_SECONDS HEX: 00000001 ! data is seconds
|
||||
CONSTANT: NOTE_USECONDS HEX: 00000002 ! data is microseconds
|
||||
CONSTANT: NOTE_NSECONDS HEX: 00000004 ! data is nanoseconds
|
||||
CONSTANT: NOTE_ABSOLUTE HEX: 00000008 ! absolute timeout
|
||||
|
||||
: NOTE_TRACK HEX: 00000001 ; inline ! follow across forks
|
||||
: NOTE_TRACKERR HEX: 00000002 ; inline ! could not track child
|
||||
: NOTE_CHILD HEX: 00000004 ; inline ! am a child process
|
||||
CONSTANT: NOTE_TRACK HEX: 00000001 ! follow across forks
|
||||
CONSTANT: NOTE_TRACKERR HEX: 00000002 ! could not track child
|
||||
CONSTANT: NOTE_CHILD HEX: 00000004 ! am a child process
|
||||
|
|
|
@ -2,31 +2,32 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.c-types io.encodings.utf8 io.encodings.string
|
||||
kernel sequences unix.stat accessors unix combinators math
|
||||
grouping system alien.strings math.bitwise alien.syntax ;
|
||||
grouping system alien.strings math.bitwise alien.syntax
|
||||
alias constants ;
|
||||
IN: unix.statfs.macosx
|
||||
|
||||
: MNT_RDONLY HEX: 00000001 ; inline
|
||||
: MNT_SYNCHRONOUS HEX: 00000002 ; inline
|
||||
: MNT_NOEXEC HEX: 00000004 ; inline
|
||||
: MNT_NOSUID HEX: 00000008 ; inline
|
||||
: MNT_NODEV HEX: 00000010 ; inline
|
||||
: MNT_UNION HEX: 00000020 ; inline
|
||||
: MNT_ASYNC HEX: 00000040 ; inline
|
||||
: MNT_EXPORTED HEX: 00000100 ; inline
|
||||
: MNT_QUARANTINE HEX: 00000400 ; inline
|
||||
: MNT_LOCAL HEX: 00001000 ; inline
|
||||
: MNT_QUOTA HEX: 00002000 ; inline
|
||||
: MNT_ROOTFS HEX: 00004000 ; inline
|
||||
: MNT_DOVOLFS HEX: 00008000 ; inline
|
||||
: MNT_DONTBROWSE HEX: 00100000 ; inline
|
||||
: MNT_IGNORE_OWNERSHIP HEX: 00200000 ; inline
|
||||
: MNT_AUTOMOUNTED HEX: 00400000 ; inline
|
||||
: MNT_JOURNALED HEX: 00800000 ; inline
|
||||
: MNT_NOUSERXATTR HEX: 01000000 ; inline
|
||||
: MNT_DEFWRITE HEX: 02000000 ; inline
|
||||
: MNT_MULTILABEL HEX: 04000000 ; inline
|
||||
: MNT_NOATIME HEX: 10000000 ; inline
|
||||
: MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP ; inline
|
||||
CONSTANT: MNT_RDONLY HEX: 00000001
|
||||
CONSTANT: MNT_SYNCHRONOUS HEX: 00000002
|
||||
CONSTANT: MNT_NOEXEC HEX: 00000004
|
||||
CONSTANT: MNT_NOSUID HEX: 00000008
|
||||
CONSTANT: MNT_NODEV HEX: 00000010
|
||||
CONSTANT: MNT_UNION HEX: 00000020
|
||||
CONSTANT: MNT_ASYNC HEX: 00000040
|
||||
CONSTANT: MNT_EXPORTED HEX: 00000100
|
||||
CONSTANT: MNT_QUARANTINE HEX: 00000400
|
||||
CONSTANT: MNT_LOCAL HEX: 00001000
|
||||
CONSTANT: MNT_QUOTA HEX: 00002000
|
||||
CONSTANT: MNT_ROOTFS HEX: 00004000
|
||||
CONSTANT: MNT_DOVOLFS HEX: 00008000
|
||||
CONSTANT: MNT_DONTBROWSE HEX: 00100000
|
||||
CONSTANT: MNT_IGNORE_OWNERSHIP HEX: 00200000
|
||||
CONSTANT: MNT_AUTOMOUNTED HEX: 00400000
|
||||
CONSTANT: MNT_JOURNALED HEX: 00800000
|
||||
CONSTANT: MNT_NOUSERXATTR HEX: 01000000
|
||||
CONSTANT: MNT_DEFWRITE HEX: 02000000
|
||||
CONSTANT: MNT_MULTILABEL HEX: 04000000
|
||||
CONSTANT: MNT_NOATIME HEX: 10000000
|
||||
ALIAS: MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP
|
||||
|
||||
: MNT_VISFLAGMASK ( -- n )
|
||||
{
|
||||
|
@ -39,58 +40,60 @@ IN: unix.statfs.macosx
|
|||
MNT_NOUSERXATTR MNT_DEFWRITE MNT_MULTILABEL MNT_NOATIME
|
||||
} flags ; inline
|
||||
|
||||
: MNT_UPDATE HEX: 00010000 ; inline
|
||||
: MNT_RELOAD HEX: 00040000 ; inline
|
||||
: MNT_FORCE HEX: 00080000 ; inline
|
||||
: MNT_CMDFLAGS { MNT_UPDATE MNT_RELOAD MNT_FORCE } flags ; inline
|
||||
CONSTANT: MNT_UPDATE HEX: 00010000
|
||||
CONSTANT: MNT_RELOAD HEX: 00040000
|
||||
CONSTANT: MNT_FORCE HEX: 00080000
|
||||
|
||||
: VFS_GENERIC 0 ; inline
|
||||
: VFS_NUMMNTOPS 1 ; inline
|
||||
: VFS_MAXTYPENUM 1 ; inline
|
||||
: VFS_CONF 2 ; inline
|
||||
: VFS_SET_PACKAGE_EXTS 3 ; inline
|
||||
: MNT_CMDFLAGS ( -- n )
|
||||
{ MNT_UPDATE MNT_RELOAD MNT_FORCE } flags ; inline
|
||||
|
||||
: MNT_WAIT 1 ; inline
|
||||
: MNT_NOWAIT 2 ; inline
|
||||
CONSTANT: VFS_GENERIC 0
|
||||
CONSTANT: VFS_NUMMNTOPS 1
|
||||
CONSTANT: VFS_MAXTYPENUM 1
|
||||
CONSTANT: VFS_CONF 2
|
||||
CONSTANT: VFS_SET_PACKAGE_EXTS 3
|
||||
|
||||
: VFS_CTL_VERS1 HEX: 01 ; inline
|
||||
CONSTANT: MNT_WAIT 1
|
||||
CONSTANT: MNT_NOWAIT 2
|
||||
|
||||
: VFS_CTL_STATFS HEX: 00010001 ; inline
|
||||
: VFS_CTL_UMOUNT HEX: 00010002 ; inline
|
||||
: VFS_CTL_QUERY HEX: 00010003 ; inline
|
||||
: VFS_CTL_NEWADDR HEX: 00010004 ; inline
|
||||
: VFS_CTL_TIMEO HEX: 00010005 ; inline
|
||||
: VFS_CTL_NOLOCKS HEX: 00010006 ; inline
|
||||
CONSTANT: VFS_CTL_VERS1 HEX: 01
|
||||
|
||||
CONSTANT: VFS_CTL_STATFS HEX: 00010001
|
||||
CONSTANT: VFS_CTL_UMOUNT HEX: 00010002
|
||||
CONSTANT: VFS_CTL_QUERY HEX: 00010003
|
||||
CONSTANT: VFS_CTL_NEWADDR HEX: 00010004
|
||||
CONSTANT: VFS_CTL_TIMEO HEX: 00010005
|
||||
CONSTANT: VFS_CTL_NOLOCKS HEX: 00010006
|
||||
|
||||
C-STRUCT: vfsquery
|
||||
{ "uint32_t" "vq_flags" }
|
||||
{ { "uint32_t" 31 } "vq_spare" } ;
|
||||
|
||||
: VQ_NOTRESP HEX: 0001 ; inline
|
||||
: VQ_NEEDAUTH HEX: 0002 ; inline
|
||||
: VQ_LOWDISK HEX: 0004 ; inline
|
||||
: VQ_MOUNT HEX: 0008 ; inline
|
||||
: VQ_UNMOUNT HEX: 0010 ; inline
|
||||
: VQ_DEAD HEX: 0020 ; inline
|
||||
: VQ_ASSIST HEX: 0040 ; inline
|
||||
: VQ_NOTRESPLOCK HEX: 0080 ; inline
|
||||
: VQ_UPDATE HEX: 0100 ; inline
|
||||
: VQ_FLAG0200 HEX: 0200 ; inline
|
||||
: VQ_FLAG0400 HEX: 0400 ; inline
|
||||
: VQ_FLAG0800 HEX: 0800 ; inline
|
||||
: VQ_FLAG1000 HEX: 1000 ; inline
|
||||
: VQ_FLAG2000 HEX: 2000 ; inline
|
||||
: VQ_FLAG4000 HEX: 4000 ; inline
|
||||
: VQ_FLAG8000 HEX: 8000 ; inline
|
||||
CONSTANT: VQ_NOTRESP HEX: 0001
|
||||
CONSTANT: VQ_NEEDAUTH HEX: 0002
|
||||
CONSTANT: VQ_LOWDISK HEX: 0004
|
||||
CONSTANT: VQ_MOUNT HEX: 0008
|
||||
CONSTANT: VQ_UNMOUNT HEX: 0010
|
||||
CONSTANT: VQ_DEAD HEX: 0020
|
||||
CONSTANT: VQ_ASSIST HEX: 0040
|
||||
CONSTANT: VQ_NOTRESPLOCK HEX: 0080
|
||||
CONSTANT: VQ_UPDATE HEX: 0100
|
||||
CONSTANT: VQ_FLAG0200 HEX: 0200
|
||||
CONSTANT: VQ_FLAG0400 HEX: 0400
|
||||
CONSTANT: VQ_FLAG0800 HEX: 0800
|
||||
CONSTANT: VQ_FLAG1000 HEX: 1000
|
||||
CONSTANT: VQ_FLAG2000 HEX: 2000
|
||||
CONSTANT: VQ_FLAG4000 HEX: 4000
|
||||
CONSTANT: VQ_FLAG8000 HEX: 8000
|
||||
|
||||
: NFSV4_MAX_FH_SIZE 128 ; inline
|
||||
: NFSV3_MAX_FH_SIZE 64 ; inline
|
||||
: NFSV2_MAX_FH_SIZE 32 ; inline
|
||||
: NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE ; inline
|
||||
CONSTANT: NFSV4_MAX_FH_SIZE 128
|
||||
CONSTANT: NFSV3_MAX_FH_SIZE 64
|
||||
CONSTANT: NFSV2_MAX_FH_SIZE 32
|
||||
CONSTANT: NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE
|
||||
|
||||
: MFSNAMELEN 15 ; inline
|
||||
: MNAMELEN 90 ; inline
|
||||
: MFSTYPENAMELEN 16 ; inline
|
||||
CONSTANT: MFSNAMELEN 15
|
||||
CONSTANT: MNAMELEN 90
|
||||
CONSTANT: MFSTYPENAMELEN 16
|
||||
|
||||
C-STRUCT: fsid_t
|
||||
{ { "int32_t" 2 } "val" } ;
|
||||
|
|
|
@ -4,31 +4,31 @@ USING: alien alien.c-types alien.syntax kernel libc
|
|||
sequences continuations byte-arrays strings math namespaces
|
||||
system combinators vocabs.loader qualified accessors
|
||||
stack-checker macros locals generalizations unix.types
|
||||
io vocabs vocabs.loader ;
|
||||
io vocabs vocabs.loader constants ;
|
||||
IN: unix
|
||||
|
||||
: PROT_NONE 0 ; inline
|
||||
: PROT_READ 1 ; inline
|
||||
: PROT_WRITE 2 ; inline
|
||||
: PROT_EXEC 4 ; inline
|
||||
CONSTANT: PROT_NONE 0
|
||||
CONSTANT: PROT_READ 1
|
||||
CONSTANT: PROT_WRITE 2
|
||||
CONSTANT: PROT_EXEC 4
|
||||
|
||||
: MAP_FILE 0 ; inline
|
||||
: MAP_SHARED 1 ; inline
|
||||
: MAP_PRIVATE 2 ; inline
|
||||
CONSTANT: MAP_FILE 0
|
||||
CONSTANT: MAP_SHARED 1
|
||||
CONSTANT: MAP_PRIVATE 2
|
||||
|
||||
: MAP_FAILED -1 <alien> ; inline
|
||||
: MAP_FAILED ( -- alien ) -1 <alien> ; inline
|
||||
|
||||
: NGROUPS_MAX 16 ; inline
|
||||
CONSTANT: NGROUPS_MAX 16
|
||||
|
||||
: DT_UNKNOWN 0 ; inline
|
||||
: DT_FIFO 1 ; inline
|
||||
: DT_CHR 2 ; inline
|
||||
: DT_DIR 4 ; inline
|
||||
: DT_BLK 6 ; inline
|
||||
: DT_REG 8 ; inline
|
||||
: DT_LNK 10 ; inline
|
||||
: DT_SOCK 12 ; inline
|
||||
: DT_WHT 14 ; inline
|
||||
CONSTANT: DT_UNKNOWN 0
|
||||
CONSTANT: DT_FIFO 1
|
||||
CONSTANT: DT_CHR 2
|
||||
CONSTANT: DT_DIR 4
|
||||
CONSTANT: DT_BLK 6
|
||||
CONSTANT: DT_REG 8
|
||||
CONSTANT: DT_LNK 10
|
||||
CONSTANT: DT_SOCK 12
|
||||
CONSTANT: DT_WHT 14
|
||||
|
||||
C-STRUCT: group
|
||||
{ "char*" "gr_name" }
|
||||
|
|
|
@ -17,7 +17,8 @@ M: vlist nth-unsafe vector>> nth-unsafe ;
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: >vlist< [ length>> ] [ vector>> ] bi ; inline
|
||||
: >vlist< ( vlist -- len vec )
|
||||
[ length>> ] [ vector>> ] bi ; inline
|
||||
|
||||
: unshare ( len vec -- len vec' )
|
||||
clone [ set-length ] 2keep ; inline
|
||||
|
|
|
@ -1,65 +1,65 @@
|
|||
USING: alias alien.syntax kernel math windows.types math.bitwise ;
|
||||
USING: alias alien.syntax kernel math windows.types math.bitwise
|
||||
constants ;
|
||||
IN: windows.advapi32
|
||||
LIBRARY: advapi32
|
||||
|
||||
: PROV_RSA_FULL 1 ; inline
|
||||
: PROV_RSA_SIG 2 ; inline
|
||||
: PROV_DSS 3 ; inline
|
||||
: PROV_FORTEZZA 4 ; inline
|
||||
: PROV_MS_EXCHANGE 5 ; inline
|
||||
: PROV_SSL 6 ; inline
|
||||
: PROV_RSA_SCHANNEL 12 ; inline
|
||||
: PROV_DSS_DH 13 ; inline
|
||||
: PROV_EC_ECDSA_SIG 14 ; inline
|
||||
: PROV_EC_ECNRA_SIG 15 ; inline
|
||||
: PROV_EC_ECDSA_FULL 16 ; inline
|
||||
: PROV_EC_ECNRA_FULL 17 ; inline
|
||||
: PROV_DH_SCHANNEL 18 ; inline
|
||||
: PROV_SPYRUS_LYNKS 20 ; inline
|
||||
: PROV_RNG 21 ; inline
|
||||
: PROV_INTEL_SEC 22 ; inline
|
||||
: PROV_REPLACE_OWF 23 ; inline
|
||||
: PROV_RSA_AES 24 ; inline
|
||||
CONSTANT: PROV_RSA_FULL 1
|
||||
CONSTANT: PROV_RSA_SIG 2
|
||||
CONSTANT: PROV_DSS 3
|
||||
CONSTANT: PROV_FORTEZZA 4
|
||||
CONSTANT: PROV_MS_EXCHANGE 5
|
||||
CONSTANT: PROV_SSL 6
|
||||
CONSTANT: PROV_RSA_SCHANNEL 12
|
||||
CONSTANT: PROV_DSS_DH 13
|
||||
CONSTANT: PROV_EC_ECDSA_SIG 14
|
||||
CONSTANT: PROV_EC_ECNRA_SIG 15
|
||||
CONSTANT: PROV_EC_ECDSA_FULL 16
|
||||
CONSTANT: PROV_EC_ECNRA_FULL 17
|
||||
CONSTANT: PROV_DH_SCHANNEL 18
|
||||
CONSTANT: PROV_SPYRUS_LYNKS 20
|
||||
CONSTANT: PROV_RNG 21
|
||||
CONSTANT: PROV_INTEL_SEC 22
|
||||
CONSTANT: PROV_REPLACE_OWF 23
|
||||
CONSTANT: PROV_RSA_AES 24
|
||||
|
||||
: MS_DEF_DH_SCHANNEL_PROV
|
||||
"Microsoft DH Schannel Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_DEF_DH_SCHANNEL_PROV "Microsoft DH Schannel Cryptographic Provider"
|
||||
|
||||
: MS_DEF_DSS_DH_PROV
|
||||
"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_DEF_DSS_DH_PROV
|
||||
"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
|
||||
|
||||
: MS_DEF_DSS_PROV
|
||||
"Microsoft Base DSS Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_DEF_DSS_PROV
|
||||
"Microsoft Base DSS Cryptographic Provider"
|
||||
|
||||
: MS_DEF_PROV
|
||||
"Microsoft Base Cryptographic Provider v1.0" ; inline
|
||||
CONSTANT: MS_DEF_PROV
|
||||
"Microsoft Base Cryptographic Provider v1.0"
|
||||
|
||||
: MS_DEF_RSA_SCHANNEL_PROV
|
||||
"Microsoft RSA Schannel Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_DEF_RSA_SCHANNEL_PROV
|
||||
"Microsoft RSA Schannel Cryptographic Provider"
|
||||
|
||||
! Unsupported (!)
|
||||
: MS_DEF_RSA_SIG_PROV
|
||||
"Microsoft RSA Signature Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_DEF_RSA_SIG_PROV
|
||||
"Microsoft RSA Signature Cryptographic Provider"
|
||||
|
||||
: MS_ENH_DSS_DH_PROV
|
||||
"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_ENH_DSS_DH_PROV
|
||||
"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
|
||||
|
||||
: MS_ENH_RSA_AES_PROV
|
||||
"Microsoft Enhanced RSA and AES Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_ENH_RSA_AES_PROV
|
||||
"Microsoft Enhanced RSA and AES Cryptographic Provider"
|
||||
|
||||
: MS_ENHANCED_PROV
|
||||
"Microsoft Enhanced Cryptographic Provider v1.0" ; inline
|
||||
CONSTANT: MS_ENHANCED_PROV
|
||||
"Microsoft Enhanced Cryptographic Provider v1.0"
|
||||
|
||||
: MS_SCARD_PROV
|
||||
"Microsoft Base Smart Card Crypto Provider" ; inline
|
||||
CONSTANT: MS_SCARD_PROV
|
||||
"Microsoft Base Smart Card Crypto Provider"
|
||||
|
||||
: MS_STRONG_PROV
|
||||
"Microsoft Strong Cryptographic Provider" ; inline
|
||||
CONSTANT: MS_STRONG_PROV
|
||||
"Microsoft Strong Cryptographic Provider"
|
||||
|
||||
: CRYPT_VERIFYCONTEXT HEX: F0000000 ; inline
|
||||
: CRYPT_NEWKEYSET HEX: 8 ; inline
|
||||
: CRYPT_DELETEKEYSET HEX: 10 ; inline
|
||||
: CRYPT_MACHINE_KEYSET HEX: 20 ; inline
|
||||
: CRYPT_SILENT HEX: 40 ; inline
|
||||
CONSTANT: CRYPT_VERIFYCONTEXT HEX: F0000000
|
||||
CONSTANT: CRYPT_NEWKEYSET HEX: 8
|
||||
CONSTANT: CRYPT_DELETEKEYSET HEX: 10
|
||||
CONSTANT: CRYPT_MACHINE_KEYSET HEX: 20
|
||||
CONSTANT: CRYPT_SILENT HEX: 40
|
||||
|
||||
C-STRUCT: ACL
|
||||
{ "BYTE" "AclRevision" }
|
||||
|
@ -70,16 +70,16 @@ C-STRUCT: ACL
|
|||
|
||||
TYPEDEF: ACL* PACL
|
||||
|
||||
: ACCESS_ALLOWED_ACE_TYPE 0 ; inline
|
||||
: ACCESS_DENIED_ACE_TYPE 1 ; inline
|
||||
: SYSTEM_AUDIT_ACE_TYPE 2 ; inline
|
||||
: SYSTEM_ALARM_ACE_TYPE 3 ; inline
|
||||
CONSTANT: ACCESS_ALLOWED_ACE_TYPE 0
|
||||
CONSTANT: ACCESS_DENIED_ACE_TYPE 1
|
||||
CONSTANT: SYSTEM_AUDIT_ACE_TYPE 2
|
||||
CONSTANT: SYSTEM_ALARM_ACE_TYPE 3
|
||||
|
||||
: OBJECT_INHERIT_ACE HEX: 1 ; inline
|
||||
: CONTAINER_INHERIT_ACE HEX: 2 ; inline
|
||||
: NO_PROPAGATE_INHERIT_ACE HEX: 4 ; inline
|
||||
: INHERIT_ONLY_ACE HEX: 8 ; inline
|
||||
: VALID_INHERIT_FLAGS HEX: f ; inline
|
||||
CONSTANT: OBJECT_INHERIT_ACE HEX: 1
|
||||
CONSTANT: CONTAINER_INHERIT_ACE HEX: 2
|
||||
CONSTANT: NO_PROPAGATE_INHERIT_ACE HEX: 4
|
||||
CONSTANT: INHERIT_ONLY_ACE HEX: 8
|
||||
CONSTANT: VALID_INHERIT_FLAGS HEX: f
|
||||
|
||||
C-STRUCT: ACE_HEADER
|
||||
{ "BYTE" "AceType" }
|
||||
|
@ -125,46 +125,46 @@ TYPEDEF: ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE
|
|||
|
||||
|
||||
! typedef enum _TOKEN_INFORMATION_CLASS {
|
||||
: TokenUser 1 ; inline
|
||||
: TokenGroups 2 ; inline
|
||||
: TokenPrivileges 3 ; inline
|
||||
: TokenOwner 4 ; inline
|
||||
: TokenPrimaryGroup 5 ; inline
|
||||
: TokenDefaultDacl 6 ; inline
|
||||
: TokenSource 7 ; inline
|
||||
: TokenType 8 ; inline
|
||||
: TokenImpersonationLevel 9 ; inline
|
||||
: TokenStatistics 10 ; inline
|
||||
: TokenRestrictedSids 11 ; inline
|
||||
: TokenSessionId 12 ; inline
|
||||
: TokenGroupsAndPrivileges 13 ; inline
|
||||
: TokenSessionReference 14 ; inline
|
||||
: TokenSandBoxInert 15 ; inline
|
||||
CONSTANT: TokenUser 1
|
||||
CONSTANT: TokenGroups 2
|
||||
CONSTANT: TokenPrivileges 3
|
||||
CONSTANT: TokenOwner 4
|
||||
CONSTANT: TokenPrimaryGroup 5
|
||||
CONSTANT: TokenDefaultDacl 6
|
||||
CONSTANT: TokenSource 7
|
||||
CONSTANT: TokenType 8
|
||||
CONSTANT: TokenImpersonationLevel 9
|
||||
CONSTANT: TokenStatistics 10
|
||||
CONSTANT: TokenRestrictedSids 11
|
||||
CONSTANT: TokenSessionId 12
|
||||
CONSTANT: TokenGroupsAndPrivileges 13
|
||||
CONSTANT: TokenSessionReference 14
|
||||
CONSTANT: TokenSandBoxInert 15
|
||||
! } TOKEN_INFORMATION_CLASS;
|
||||
|
||||
: DELETE HEX: 00010000 ; inline
|
||||
: READ_CONTROL HEX: 00020000 ; inline
|
||||
: WRITE_DAC HEX: 00040000 ; inline
|
||||
: WRITE_OWNER HEX: 00080000 ; inline
|
||||
: SYNCHRONIZE HEX: 00100000 ; inline
|
||||
: STANDARD_RIGHTS_REQUIRED HEX: 000f0000 ; inline
|
||||
CONSTANT: DELETE HEX: 00010000
|
||||
CONSTANT: READ_CONTROL HEX: 00020000
|
||||
CONSTANT: WRITE_DAC HEX: 00040000
|
||||
CONSTANT: WRITE_OWNER HEX: 00080000
|
||||
CONSTANT: SYNCHRONIZE HEX: 00100000
|
||||
CONSTANT: STANDARD_RIGHTS_REQUIRED HEX: 000f0000
|
||||
|
||||
: STANDARD_RIGHTS_READ READ_CONTROL ; inline
|
||||
: STANDARD_RIGHTS_WRITE READ_CONTROL ; inline
|
||||
: STANDARD_RIGHTS_EXECUTE READ_CONTROL ; inline
|
||||
ALIAS: STANDARD_RIGHTS_READ READ_CONTROL
|
||||
ALIAS: STANDARD_RIGHTS_WRITE READ_CONTROL
|
||||
ALIAS: STANDARD_RIGHTS_EXECUTE READ_CONTROL
|
||||
|
||||
: TOKEN_TOKEN_ADJUST_DEFAULT HEX: 0080 ; inline
|
||||
: TOKEN_ADJUST_GROUPS HEX: 0040 ; inline
|
||||
: TOKEN_ADJUST_PRIVILEGES HEX: 0020 ; inline
|
||||
: TOKEN_ADJUST_SESSIONID HEX: 0100 ; inline
|
||||
: TOKEN_ASSIGN_PRIMARY HEX: 0001 ; inline
|
||||
: TOKEN_DUPLICATE HEX: 0002 ; inline
|
||||
: TOKEN_EXECUTE STANDARD_RIGHTS_EXECUTE ; inline
|
||||
: TOKEN_IMPERSONATE HEX: 0004 ; inline
|
||||
: TOKEN_QUERY HEX: 0008 ; inline
|
||||
: TOKEN_QUERY_SOURCE HEX: 0010 ; inline
|
||||
: TOKEN_ADJUST_DEFAULT HEX: 0080 ; inline
|
||||
: TOKEN_READ ( -- n ) STANDARD_RIGHTS_READ TOKEN_QUERY bitor ;
|
||||
CONSTANT: TOKEN_TOKEN_ADJUST_DEFAULT HEX: 0080
|
||||
CONSTANT: TOKEN_ADJUST_GROUPS HEX: 0040
|
||||
CONSTANT: TOKEN_ADJUST_PRIVILEGES HEX: 0020
|
||||
CONSTANT: TOKEN_ADJUST_SESSIONID HEX: 0100
|
||||
CONSTANT: TOKEN_ASSIGN_PRIMARY HEX: 0001
|
||||
CONSTANT: TOKEN_DUPLICATE HEX: 0002
|
||||
ALIAS: TOKEN_EXECUTE STANDARD_RIGHTS_EXECUTE
|
||||
CONSTANT: TOKEN_IMPERSONATE HEX: 0004
|
||||
CONSTANT: TOKEN_QUERY HEX: 0008
|
||||
CONSTANT: TOKEN_QUERY_SOURCE HEX: 0010
|
||||
CONSTANT: TOKEN_ADJUST_DEFAULT HEX: 0080
|
||||
: TOKEN_READ ( -- n ) { STANDARD_RIGHTS_READ TOKEN_QUERY } flags ;
|
||||
|
||||
: TOKEN_WRITE ( -- n )
|
||||
{
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
USING: windows.kernel32 windows.ole32 windows.com windows.com.syntax
|
||||
alien alien.c-types alien.syntax kernel system namespaces math ;
|
||||
alien alien.c-types alien.syntax kernel system namespaces math constants
|
||||
alias ;
|
||||
IN: windows.dinput
|
||||
|
||||
<<
|
||||
|
@ -384,314 +385,314 @@ COM-INTERFACE: IDirectInput8W IUnknown {BF798031-483A-4DA2-AA99-5D64ED369700}
|
|||
|
||||
FUNCTION: HRESULT DirectInput8Create ( HINSTANCE hinst, DWORD dwVersion, REFIID riidtlf, LPVOID* ppvOut, LPUNKNOWN punkOuter ) ;
|
||||
|
||||
: DIRECTINPUT_VERSION HEX: 0800 ; inline
|
||||
CONSTANT: DIRECTINPUT_VERSION HEX: 0800
|
||||
|
||||
: DI8DEVCLASS_ALL 0 ; inline
|
||||
: DI8DEVCLASS_DEVICE 1 ; inline
|
||||
: DI8DEVCLASS_POINTER 2 ; inline
|
||||
: DI8DEVCLASS_KEYBOARD 3 ; inline
|
||||
: DI8DEVCLASS_GAMECTRL 4 ; inline
|
||||
CONSTANT: DI8DEVCLASS_ALL 0
|
||||
CONSTANT: DI8DEVCLASS_DEVICE 1
|
||||
CONSTANT: DI8DEVCLASS_POINTER 2
|
||||
CONSTANT: DI8DEVCLASS_KEYBOARD 3
|
||||
CONSTANT: DI8DEVCLASS_GAMECTRL 4
|
||||
|
||||
: DIEDFL_ALLDEVICES HEX: 00000000 ; inline
|
||||
: DIEDFL_ATTACHEDONLY HEX: 00000001 ; inline
|
||||
: DIEDFL_FORCEFEEDBACK HEX: 00000100 ; inline
|
||||
: DIEDFL_INCLUDEALIASES HEX: 00010000 ; inline
|
||||
: DIEDFL_INCLUDEPHANTOMS HEX: 00020000 ; inline
|
||||
: DIEDFL_INCLUDEHIDDEN HEX: 00040000 ; inline
|
||||
CONSTANT: DIEDFL_ALLDEVICES HEX: 00000000
|
||||
CONSTANT: DIEDFL_ATTACHEDONLY HEX: 00000001
|
||||
CONSTANT: DIEDFL_FORCEFEEDBACK HEX: 00000100
|
||||
CONSTANT: DIEDFL_INCLUDEALIASES HEX: 00010000
|
||||
CONSTANT: DIEDFL_INCLUDEPHANTOMS HEX: 00020000
|
||||
CONSTANT: DIEDFL_INCLUDEHIDDEN HEX: 00040000
|
||||
|
||||
: DIENUM_STOP 0 ; inline
|
||||
: DIENUM_CONTINUE 1 ; inline
|
||||
CONSTANT: DIENUM_STOP 0
|
||||
CONSTANT: DIENUM_CONTINUE 1
|
||||
|
||||
: DIDF_ABSAXIS 1 ;
|
||||
: DIDF_RELAXIS 2 ;
|
||||
CONSTANT: DIDF_ABSAXIS 1
|
||||
CONSTANT: DIDF_RELAXIS 2
|
||||
|
||||
: DIDFT_ALL HEX: 00000000 ; inline
|
||||
CONSTANT: DIDFT_ALL HEX: 00000000
|
||||
|
||||
: DIDFT_RELAXIS HEX: 00000001 ; inline
|
||||
: DIDFT_ABSAXIS HEX: 00000002 ; inline
|
||||
: DIDFT_AXIS HEX: 00000003 ; inline
|
||||
CONSTANT: DIDFT_RELAXIS HEX: 00000001
|
||||
CONSTANT: DIDFT_ABSAXIS HEX: 00000002
|
||||
CONSTANT: DIDFT_AXIS HEX: 00000003
|
||||
|
||||
: DIDFT_PSHBUTTON HEX: 00000004 ; inline
|
||||
: DIDFT_TGLBUTTON HEX: 00000008 ; inline
|
||||
: DIDFT_BUTTON HEX: 0000000C ; inline
|
||||
CONSTANT: DIDFT_PSHBUTTON HEX: 00000004
|
||||
CONSTANT: DIDFT_TGLBUTTON HEX: 00000008
|
||||
CONSTANT: DIDFT_BUTTON HEX: 0000000C
|
||||
|
||||
: DIDFT_POV HEX: 00000010 ; inline
|
||||
: DIDFT_COLLECTION HEX: 00000040 ; inline
|
||||
: DIDFT_NODATA HEX: 00000080 ; inline
|
||||
CONSTANT: DIDFT_POV HEX: 00000010
|
||||
CONSTANT: DIDFT_COLLECTION HEX: 00000040
|
||||
CONSTANT: DIDFT_NODATA HEX: 00000080
|
||||
|
||||
: DIDFT_ANYINSTANCE HEX: 00FFFF00 ; inline
|
||||
: DIDFT_INSTANCEMASK DIDFT_ANYINSTANCE ; inline
|
||||
CONSTANT: DIDFT_ANYINSTANCE HEX: 00FFFF00
|
||||
ALIAS: DIDFT_INSTANCEMASK DIDFT_ANYINSTANCE
|
||||
: DIDFT_MAKEINSTANCE ( n -- instance ) 8 shift ; inline
|
||||
: DIDFT_GETTYPE ( n -- type ) HEX: FF bitand ; inline
|
||||
: DIDFT_GETINSTANCE ( n -- instance ) -8 shift HEX: FFFF bitand ; inline
|
||||
: DIDFT_FFACTUATOR HEX: 01000000 ; inline
|
||||
: DIDFT_FFEFFECTTRIGGER HEX: 02000000 ; inline
|
||||
: DIDFT_OUTPUT HEX: 10000000 ; inline
|
||||
: DIDFT_VENDORDEFINED HEX: 04000000 ; inline
|
||||
: DIDFT_ALIAS HEX: 08000000 ; inline
|
||||
: DIDFT_OPTIONAL HEX: 80000000 ; inline
|
||||
CONSTANT: DIDFT_FFACTUATOR HEX: 01000000
|
||||
CONSTANT: DIDFT_FFEFFECTTRIGGER HEX: 02000000
|
||||
CONSTANT: DIDFT_OUTPUT HEX: 10000000
|
||||
CONSTANT: DIDFT_VENDORDEFINED HEX: 04000000
|
||||
CONSTANT: DIDFT_ALIAS HEX: 08000000
|
||||
CONSTANT: DIDFT_OPTIONAL HEX: 80000000
|
||||
|
||||
: DIDFT_ENUMCOLLECTION ( n -- instance ) 8 shift HEX: FFFF bitand ; inline
|
||||
: DIDFT_NOCOLLECTION HEX: 00FFFF00 ; inline
|
||||
CONSTANT: DIDFT_NOCOLLECTION HEX: 00FFFF00
|
||||
|
||||
: DIDOI_FFACTUATOR HEX: 00000001 ; inline
|
||||
: DIDOI_FFEFFECTTRIGGER HEX: 00000002 ; inline
|
||||
: DIDOI_POLLED HEX: 00008000 ; inline
|
||||
: DIDOI_ASPECTPOSITION HEX: 00000100 ; inline
|
||||
: DIDOI_ASPECTVELOCITY HEX: 00000200 ; inline
|
||||
: DIDOI_ASPECTACCEL HEX: 00000300 ; inline
|
||||
: DIDOI_ASPECTFORCE HEX: 00000400 ; inline
|
||||
: DIDOI_ASPECTMASK HEX: 00000F00 ; inline
|
||||
: DIDOI_GUIDISUSAGE HEX: 00010000 ; inline
|
||||
CONSTANT: DIDOI_FFACTUATOR HEX: 00000001
|
||||
CONSTANT: DIDOI_FFEFFECTTRIGGER HEX: 00000002
|
||||
CONSTANT: DIDOI_POLLED HEX: 00008000
|
||||
CONSTANT: DIDOI_ASPECTPOSITION HEX: 00000100
|
||||
CONSTANT: DIDOI_ASPECTVELOCITY HEX: 00000200
|
||||
CONSTANT: DIDOI_ASPECTACCEL HEX: 00000300
|
||||
CONSTANT: DIDOI_ASPECTFORCE HEX: 00000400
|
||||
CONSTANT: DIDOI_ASPECTMASK HEX: 00000F00
|
||||
CONSTANT: DIDOI_GUIDISUSAGE HEX: 00010000
|
||||
|
||||
: DISCL_EXCLUSIVE HEX: 00000001 ; inline
|
||||
: DISCL_NONEXCLUSIVE HEX: 00000002 ; inline
|
||||
: DISCL_FOREGROUND HEX: 00000004 ; inline
|
||||
: DISCL_BACKGROUND HEX: 00000008 ; inline
|
||||
: DISCL_NOWINKEY HEX: 00000010 ; inline
|
||||
CONSTANT: DISCL_EXCLUSIVE HEX: 00000001
|
||||
CONSTANT: DISCL_NONEXCLUSIVE HEX: 00000002
|
||||
CONSTANT: DISCL_FOREGROUND HEX: 00000004
|
||||
CONSTANT: DISCL_BACKGROUND HEX: 00000008
|
||||
CONSTANT: DISCL_NOWINKEY HEX: 00000010
|
||||
|
||||
: DIK_ESCAPE HEX: 01 ; inline
|
||||
: DIK_1 HEX: 02 ; inline
|
||||
: DIK_2 HEX: 03 ; inline
|
||||
: DIK_3 HEX: 04 ; inline
|
||||
: DIK_4 HEX: 05 ; inline
|
||||
: DIK_5 HEX: 06 ; inline
|
||||
: DIK_6 HEX: 07 ; inline
|
||||
: DIK_7 HEX: 08 ; inline
|
||||
: DIK_8 HEX: 09 ; inline
|
||||
: DIK_9 HEX: 0A ; inline
|
||||
: DIK_0 HEX: 0B ; inline
|
||||
: DIK_MINUS HEX: 0C ; inline
|
||||
: DIK_EQUALS HEX: 0D ; inline
|
||||
: DIK_BACK HEX: 0E ; inline
|
||||
: DIK_TAB HEX: 0F ; inline
|
||||
: DIK_Q HEX: 10 ; inline
|
||||
: DIK_W HEX: 11 ; inline
|
||||
: DIK_E HEX: 12 ; inline
|
||||
: DIK_R HEX: 13 ; inline
|
||||
: DIK_T HEX: 14 ; inline
|
||||
: DIK_Y HEX: 15 ; inline
|
||||
: DIK_U HEX: 16 ; inline
|
||||
: DIK_I HEX: 17 ; inline
|
||||
: DIK_O HEX: 18 ; inline
|
||||
: DIK_P HEX: 19 ; inline
|
||||
: DIK_LBRACKET HEX: 1A ; inline
|
||||
: DIK_RBRACKET HEX: 1B ; inline
|
||||
: DIK_RETURN HEX: 1C ; inline
|
||||
: DIK_LCONTROL HEX: 1D ; inline
|
||||
: DIK_A HEX: 1E ; inline
|
||||
: DIK_S HEX: 1F ; inline
|
||||
: DIK_D HEX: 20 ; inline
|
||||
: DIK_F HEX: 21 ; inline
|
||||
: DIK_G HEX: 22 ; inline
|
||||
: DIK_H HEX: 23 ; inline
|
||||
: DIK_J HEX: 24 ; inline
|
||||
: DIK_K HEX: 25 ; inline
|
||||
: DIK_L HEX: 26 ; inline
|
||||
: DIK_SEMICOLON HEX: 27 ; inline
|
||||
: DIK_APOSTROPHE HEX: 28 ; inline
|
||||
: DIK_GRAVE HEX: 29 ; inline
|
||||
: DIK_LSHIFT HEX: 2A ; inline
|
||||
: DIK_BACKSLASH HEX: 2B ; inline
|
||||
: DIK_Z HEX: 2C ; inline
|
||||
: DIK_X HEX: 2D ; inline
|
||||
: DIK_C HEX: 2E ; inline
|
||||
: DIK_V HEX: 2F ; inline
|
||||
: DIK_B HEX: 30 ; inline
|
||||
: DIK_N HEX: 31 ; inline
|
||||
: DIK_M HEX: 32 ; inline
|
||||
: DIK_COMMA HEX: 33 ; inline
|
||||
: DIK_PERIOD HEX: 34 ; inline
|
||||
: DIK_SLASH HEX: 35 ; inline
|
||||
: DIK_RSHIFT HEX: 36 ; inline
|
||||
: DIK_MULTIPLY HEX: 37 ; inline
|
||||
: DIK_LMENU HEX: 38 ; inline
|
||||
: DIK_SPACE HEX: 39 ; inline
|
||||
: DIK_CAPITAL HEX: 3A ; inline
|
||||
: DIK_F1 HEX: 3B ; inline
|
||||
: DIK_F2 HEX: 3C ; inline
|
||||
: DIK_F3 HEX: 3D ; inline
|
||||
: DIK_F4 HEX: 3E ; inline
|
||||
: DIK_F5 HEX: 3F ; inline
|
||||
: DIK_F6 HEX: 40 ; inline
|
||||
: DIK_F7 HEX: 41 ; inline
|
||||
: DIK_F8 HEX: 42 ; inline
|
||||
: DIK_F9 HEX: 43 ; inline
|
||||
: DIK_F10 HEX: 44 ; inline
|
||||
: DIK_NUMLOCK HEX: 45 ; inline
|
||||
: DIK_SCROLL HEX: 46 ; inline
|
||||
: DIK_NUMPAD7 HEX: 47 ; inline
|
||||
: DIK_NUMPAD8 HEX: 48 ; inline
|
||||
: DIK_NUMPAD9 HEX: 49 ; inline
|
||||
: DIK_SUBTRACT HEX: 4A ; inline
|
||||
: DIK_NUMPAD4 HEX: 4B ; inline
|
||||
: DIK_NUMPAD5 HEX: 4C ; inline
|
||||
: DIK_NUMPAD6 HEX: 4D ; inline
|
||||
: DIK_ADD HEX: 4E ; inline
|
||||
: DIK_NUMPAD1 HEX: 4F ; inline
|
||||
: DIK_NUMPAD2 HEX: 50 ; inline
|
||||
: DIK_NUMPAD3 HEX: 51 ; inline
|
||||
: DIK_NUMPAD0 HEX: 52 ; inline
|
||||
: DIK_DECIMAL HEX: 53 ; inline
|
||||
: DIK_OEM_102 HEX: 56 ; inline
|
||||
: DIK_F11 HEX: 57 ; inline
|
||||
: DIK_F12 HEX: 58 ; inline
|
||||
: DIK_F13 HEX: 64 ; inline
|
||||
: DIK_F14 HEX: 65 ; inline
|
||||
: DIK_F15 HEX: 66 ; inline
|
||||
: DIK_KANA HEX: 70 ; inline
|
||||
: DIK_ABNT_C1 HEX: 73 ; inline
|
||||
: DIK_CONVERT HEX: 79 ; inline
|
||||
: DIK_NOCONVERT HEX: 7B ; inline
|
||||
: DIK_YEN HEX: 7D ; inline
|
||||
: DIK_ABNT_C2 HEX: 7E ; inline
|
||||
: DIK_NUMPADEQUALS HEX: 8D ; inline
|
||||
: DIK_PREVTRACK HEX: 90 ; inline
|
||||
: DIK_AT HEX: 91 ; inline
|
||||
: DIK_COLON HEX: 92 ; inline
|
||||
: DIK_UNDERLINE HEX: 93 ; inline
|
||||
: DIK_KANJI HEX: 94 ; inline
|
||||
: DIK_STOP HEX: 95 ; inline
|
||||
: DIK_AX HEX: 96 ; inline
|
||||
: DIK_UNLABELED HEX: 97 ; inline
|
||||
: DIK_NEXTTRACK HEX: 99 ; inline
|
||||
: DIK_NUMPADENTER HEX: 9C ; inline
|
||||
: DIK_RCONTROL HEX: 9D ; inline
|
||||
: DIK_MUTE HEX: A0 ; inline
|
||||
: DIK_CALCULATOR HEX: A1 ; inline
|
||||
: DIK_PLAYPAUSE HEX: A2 ; inline
|
||||
: DIK_MEDIASTOP HEX: A4 ; inline
|
||||
: DIK_VOLUMEDOWN HEX: AE ; inline
|
||||
: DIK_VOLUMEUP HEX: B0 ; inline
|
||||
: DIK_WEBHOME HEX: B2 ; inline
|
||||
: DIK_NUMPADCOMMA HEX: B3 ; inline
|
||||
: DIK_DIVIDE HEX: B5 ; inline
|
||||
: DIK_SYSRQ HEX: B7 ; inline
|
||||
: DIK_RMENU HEX: B8 ; inline
|
||||
: DIK_PAUSE HEX: C5 ; inline
|
||||
: DIK_HOME HEX: C7 ; inline
|
||||
: DIK_UP HEX: C8 ; inline
|
||||
: DIK_PRIOR HEX: C9 ; inline
|
||||
: DIK_LEFT HEX: CB ; inline
|
||||
: DIK_RIGHT HEX: CD ; inline
|
||||
: DIK_END HEX: CF ; inline
|
||||
: DIK_DOWN HEX: D0 ; inline
|
||||
: DIK_NEXT HEX: D1 ; inline
|
||||
: DIK_INSERT HEX: D2 ; inline
|
||||
: DIK_DELETE HEX: D3 ; inline
|
||||
: DIK_LWIN HEX: DB ; inline
|
||||
: DIK_RWIN HEX: DC ; inline
|
||||
: DIK_APPS HEX: DD ; inline
|
||||
: DIK_POWER HEX: DE ; inline
|
||||
: DIK_SLEEP HEX: DF ; inline
|
||||
: DIK_WAKE HEX: E3 ; inline
|
||||
: DIK_WEBSEARCH HEX: E5 ; inline
|
||||
: DIK_WEBFAVORITES HEX: E6 ; inline
|
||||
: DIK_WEBREFRESH HEX: E7 ; inline
|
||||
: DIK_WEBSTOP HEX: E8 ; inline
|
||||
: DIK_WEBFORWARD HEX: E9 ; inline
|
||||
: DIK_WEBBACK HEX: EA ; inline
|
||||
: DIK_MYCOMPUTER HEX: EB ; inline
|
||||
: DIK_MAIL HEX: EC ; inline
|
||||
: DIK_MEDIASELECT HEX: ED ; inline
|
||||
CONSTANT: DIK_ESCAPE HEX: 01
|
||||
CONSTANT: DIK_1 HEX: 02
|
||||
CONSTANT: DIK_2 HEX: 03
|
||||
CONSTANT: DIK_3 HEX: 04
|
||||
CONSTANT: DIK_4 HEX: 05
|
||||
CONSTANT: DIK_5 HEX: 06
|
||||
CONSTANT: DIK_6 HEX: 07
|
||||
CONSTANT: DIK_7 HEX: 08
|
||||
CONSTANT: DIK_8 HEX: 09
|
||||
CONSTANT: DIK_9 HEX: 0A
|
||||
CONSTANT: DIK_0 HEX: 0B
|
||||
CONSTANT: DIK_MINUS HEX: 0C
|
||||
CONSTANT: DIK_EQUALS HEX: 0D
|
||||
CONSTANT: DIK_BACK HEX: 0E
|
||||
CONSTANT: DIK_TAB HEX: 0F
|
||||
CONSTANT: DIK_Q HEX: 10
|
||||
CONSTANT: DIK_W HEX: 11
|
||||
CONSTANT: DIK_E HEX: 12
|
||||
CONSTANT: DIK_R HEX: 13
|
||||
CONSTANT: DIK_T HEX: 14
|
||||
CONSTANT: DIK_Y HEX: 15
|
||||
CONSTANT: DIK_U HEX: 16
|
||||
CONSTANT: DIK_I HEX: 17
|
||||
CONSTANT: DIK_O HEX: 18
|
||||
CONSTANT: DIK_P HEX: 19
|
||||
CONSTANT: DIK_LBRACKET HEX: 1A
|
||||
CONSTANT: DIK_RBRACKET HEX: 1B
|
||||
CONSTANT: DIK_RETURN HEX: 1C
|
||||
CONSTANT: DIK_LCONTROL HEX: 1D
|
||||
CONSTANT: DIK_A HEX: 1E
|
||||
CONSTANT: DIK_S HEX: 1F
|
||||
CONSTANT: DIK_D HEX: 20
|
||||
CONSTANT: DIK_F HEX: 21
|
||||
CONSTANT: DIK_G HEX: 22
|
||||
CONSTANT: DIK_H HEX: 23
|
||||
CONSTANT: DIK_J HEX: 24
|
||||
CONSTANT: DIK_K HEX: 25
|
||||
CONSTANT: DIK_L HEX: 26
|
||||
CONSTANT: DIK_SEMICOLON HEX: 27
|
||||
CONSTANT: DIK_APOSTROPHE HEX: 28
|
||||
CONSTANT: DIK_GRAVE HEX: 29
|
||||
CONSTANT: DIK_LSHIFT HEX: 2A
|
||||
CONSTANT: DIK_BACKSLASH HEX: 2B
|
||||
CONSTANT: DIK_Z HEX: 2C
|
||||
CONSTANT: DIK_X HEX: 2D
|
||||
CONSTANT: DIK_C HEX: 2E
|
||||
CONSTANT: DIK_V HEX: 2F
|
||||
CONSTANT: DIK_B HEX: 30
|
||||
CONSTANT: DIK_N HEX: 31
|
||||
CONSTANT: DIK_M HEX: 32
|
||||
CONSTANT: DIK_COMMA HEX: 33
|
||||
CONSTANT: DIK_PERIOD HEX: 34
|
||||
CONSTANT: DIK_SLASH HEX: 35
|
||||
CONSTANT: DIK_RSHIFT HEX: 36
|
||||
CONSTANT: DIK_MULTIPLY HEX: 37
|
||||
CONSTANT: DIK_LMENU HEX: 38
|
||||
CONSTANT: DIK_SPACE HEX: 39
|
||||
CONSTANT: DIK_CAPITAL HEX: 3A
|
||||
CONSTANT: DIK_F1 HEX: 3B
|
||||
CONSTANT: DIK_F2 HEX: 3C
|
||||
CONSTANT: DIK_F3 HEX: 3D
|
||||
CONSTANT: DIK_F4 HEX: 3E
|
||||
CONSTANT: DIK_F5 HEX: 3F
|
||||
CONSTANT: DIK_F6 HEX: 40
|
||||
CONSTANT: DIK_F7 HEX: 41
|
||||
CONSTANT: DIK_F8 HEX: 42
|
||||
CONSTANT: DIK_F9 HEX: 43
|
||||
CONSTANT: DIK_F10 HEX: 44
|
||||
CONSTANT: DIK_NUMLOCK HEX: 45
|
||||
CONSTANT: DIK_SCROLL HEX: 46
|
||||
CONSTANT: DIK_NUMPAD7 HEX: 47
|
||||
CONSTANT: DIK_NUMPAD8 HEX: 48
|
||||
CONSTANT: DIK_NUMPAD9 HEX: 49
|
||||
CONSTANT: DIK_SUBTRACT HEX: 4A
|
||||
CONSTANT: DIK_NUMPAD4 HEX: 4B
|
||||
CONSTANT: DIK_NUMPAD5 HEX: 4C
|
||||
CONSTANT: DIK_NUMPAD6 HEX: 4D
|
||||
CONSTANT: DIK_ADD HEX: 4E
|
||||
CONSTANT: DIK_NUMPAD1 HEX: 4F
|
||||
CONSTANT: DIK_NUMPAD2 HEX: 50
|
||||
CONSTANT: DIK_NUMPAD3 HEX: 51
|
||||
CONSTANT: DIK_NUMPAD0 HEX: 52
|
||||
CONSTANT: DIK_DECIMAL HEX: 53
|
||||
CONSTANT: DIK_OEM_102 HEX: 56
|
||||
CONSTANT: DIK_F11 HEX: 57
|
||||
CONSTANT: DIK_F12 HEX: 58
|
||||
CONSTANT: DIK_F13 HEX: 64
|
||||
CONSTANT: DIK_F14 HEX: 65
|
||||
CONSTANT: DIK_F15 HEX: 66
|
||||
CONSTANT: DIK_KANA HEX: 70
|
||||
CONSTANT: DIK_ABNT_C1 HEX: 73
|
||||
CONSTANT: DIK_CONVERT HEX: 79
|
||||
CONSTANT: DIK_NOCONVERT HEX: 7B
|
||||
CONSTANT: DIK_YEN HEX: 7D
|
||||
CONSTANT: DIK_ABNT_C2 HEX: 7E
|
||||
CONSTANT: DIK_NUMPADEQUALS HEX: 8D
|
||||
CONSTANT: DIK_PREVTRACK HEX: 90
|
||||
CONSTANT: DIK_AT HEX: 91
|
||||
CONSTANT: DIK_COLON HEX: 92
|
||||
CONSTANT: DIK_UNDERLINE HEX: 93
|
||||
CONSTANT: DIK_KANJI HEX: 94
|
||||
CONSTANT: DIK_STOP HEX: 95
|
||||
CONSTANT: DIK_AX HEX: 96
|
||||
CONSTANT: DIK_UNLABELED HEX: 97
|
||||
CONSTANT: DIK_NEXTTRACK HEX: 99
|
||||
CONSTANT: DIK_NUMPADENTER HEX: 9C
|
||||
CONSTANT: DIK_RCONTROL HEX: 9D
|
||||
CONSTANT: DIK_MUTE HEX: A0
|
||||
CONSTANT: DIK_CALCULATOR HEX: A1
|
||||
CONSTANT: DIK_PLAYPAUSE HEX: A2
|
||||
CONSTANT: DIK_MEDIASTOP HEX: A4
|
||||
CONSTANT: DIK_VOLUMEDOWN HEX: AE
|
||||
CONSTANT: DIK_VOLUMEUP HEX: B0
|
||||
CONSTANT: DIK_WEBHOME HEX: B2
|
||||
CONSTANT: DIK_NUMPADCOMMA HEX: B3
|
||||
CONSTANT: DIK_DIVIDE HEX: B5
|
||||
CONSTANT: DIK_SYSRQ HEX: B7
|
||||
CONSTANT: DIK_RMENU HEX: B8
|
||||
CONSTANT: DIK_PAUSE HEX: C5
|
||||
CONSTANT: DIK_HOME HEX: C7
|
||||
CONSTANT: DIK_UP HEX: C8
|
||||
CONSTANT: DIK_PRIOR HEX: C9
|
||||
CONSTANT: DIK_LEFT HEX: CB
|
||||
CONSTANT: DIK_RIGHT HEX: CD
|
||||
CONSTANT: DIK_END HEX: CF
|
||||
CONSTANT: DIK_DOWN HEX: D0
|
||||
CONSTANT: DIK_NEXT HEX: D1
|
||||
CONSTANT: DIK_INSERT HEX: D2
|
||||
CONSTANT: DIK_DELETE HEX: D3
|
||||
CONSTANT: DIK_LWIN HEX: DB
|
||||
CONSTANT: DIK_RWIN HEX: DC
|
||||
CONSTANT: DIK_APPS HEX: DD
|
||||
CONSTANT: DIK_POWER HEX: DE
|
||||
CONSTANT: DIK_SLEEP HEX: DF
|
||||
CONSTANT: DIK_WAKE HEX: E3
|
||||
CONSTANT: DIK_WEBSEARCH HEX: E5
|
||||
CONSTANT: DIK_WEBFAVORITES HEX: E6
|
||||
CONSTANT: DIK_WEBREFRESH HEX: E7
|
||||
CONSTANT: DIK_WEBSTOP HEX: E8
|
||||
CONSTANT: DIK_WEBFORWARD HEX: E9
|
||||
CONSTANT: DIK_WEBBACK HEX: EA
|
||||
CONSTANT: DIK_MYCOMPUTER HEX: EB
|
||||
CONSTANT: DIK_MAIL HEX: EC
|
||||
CONSTANT: DIK_MEDIASELECT HEX: ED
|
||||
|
||||
: DIK_BACKSPACE DIK_BACK ; inline
|
||||
: DIK_NUMPADSTAR DIK_MULTIPLY ; inline
|
||||
: DIK_LALT DIK_LMENU ; inline
|
||||
: DIK_CAPSLOCK DIK_CAPITAL ; inline
|
||||
: DIK_NUMPADMINUS DIK_SUBTRACT ; inline
|
||||
: DIK_NUMPADPLUS DIK_ADD ; inline
|
||||
: DIK_NUMPADPERIOD DIK_DECIMAL ; inline
|
||||
: DIK_NUMPADSLASH DIK_DIVIDE ; inline
|
||||
: DIK_RALT DIK_RMENU ; inline
|
||||
: DIK_UPARROW DIK_UP ; inline
|
||||
: DIK_PGUP DIK_PRIOR ; inline
|
||||
: DIK_LEFTARROW DIK_LEFT ; inline
|
||||
: DIK_RIGHTARROW DIK_RIGHT ; inline
|
||||
: DIK_DOWNARROW DIK_DOWN ; inline
|
||||
: DIK_PGDN DIK_NEXT ; inline
|
||||
ALIAS: DIK_BACKSPACE DIK_BACK
|
||||
ALIAS: DIK_NUMPADSTAR DIK_MULTIPLY
|
||||
ALIAS: DIK_LALT DIK_LMENU
|
||||
ALIAS: DIK_CAPSLOCK DIK_CAPITAL
|
||||
ALIAS: DIK_NUMPADMINUS DIK_SUBTRACT
|
||||
ALIAS: DIK_NUMPADPLUS DIK_ADD
|
||||
ALIAS: DIK_NUMPADPERIOD DIK_DECIMAL
|
||||
ALIAS: DIK_NUMPADSLASH DIK_DIVIDE
|
||||
ALIAS: DIK_RALT DIK_RMENU
|
||||
ALIAS: DIK_UPARROW DIK_UP
|
||||
ALIAS: DIK_PGUP DIK_PRIOR
|
||||
ALIAS: DIK_LEFTARROW DIK_LEFT
|
||||
ALIAS: DIK_RIGHTARROW DIK_RIGHT
|
||||
ALIAS: DIK_DOWNARROW DIK_DOWN
|
||||
ALIAS: DIK_PGDN DIK_NEXT
|
||||
|
||||
: DIK_CIRCUMFLEX DIK_PREVTRACK ; inline
|
||||
ALIAS: DIK_CIRCUMFLEX DIK_PREVTRACK
|
||||
|
||||
: DI8DEVTYPE_DEVICE HEX: 11 ; inline
|
||||
: DI8DEVTYPE_MOUSE HEX: 12 ; inline
|
||||
: DI8DEVTYPE_KEYBOARD HEX: 13 ; inline
|
||||
: DI8DEVTYPE_JOYSTICK HEX: 14 ; inline
|
||||
: DI8DEVTYPE_GAMEPAD HEX: 15 ; inline
|
||||
: DI8DEVTYPE_DRIVING HEX: 16 ; inline
|
||||
: DI8DEVTYPE_FLIGHT HEX: 17 ; inline
|
||||
: DI8DEVTYPE_1STPERSON HEX: 18 ; inline
|
||||
: DI8DEVTYPE_DEVICECTRL HEX: 19 ; inline
|
||||
: DI8DEVTYPE_SCREENPOINTER HEX: 1A ; inline
|
||||
: DI8DEVTYPE_REMOTE HEX: 1B ; inline
|
||||
: DI8DEVTYPE_SUPPLEMENTAL HEX: 1C ; inline
|
||||
CONSTANT: DI8DEVTYPE_DEVICE HEX: 11
|
||||
CONSTANT: DI8DEVTYPE_MOUSE HEX: 12
|
||||
CONSTANT: DI8DEVTYPE_KEYBOARD HEX: 13
|
||||
CONSTANT: DI8DEVTYPE_JOYSTICK HEX: 14
|
||||
CONSTANT: DI8DEVTYPE_GAMEPAD HEX: 15
|
||||
CONSTANT: DI8DEVTYPE_DRIVING HEX: 16
|
||||
CONSTANT: DI8DEVTYPE_FLIGHT HEX: 17
|
||||
CONSTANT: DI8DEVTYPE_1STPERSON HEX: 18
|
||||
CONSTANT: DI8DEVTYPE_DEVICECTRL HEX: 19
|
||||
CONSTANT: DI8DEVTYPE_SCREENPOINTER HEX: 1A
|
||||
CONSTANT: DI8DEVTYPE_REMOTE HEX: 1B
|
||||
CONSTANT: DI8DEVTYPE_SUPPLEMENTAL HEX: 1C
|
||||
|
||||
: GET_DIDEVICE_TYPE ( dwType -- type ) HEX: FF bitand ; inline
|
||||
|
||||
: DIPROPRANGE_NOMIN HEX: 80000000 ; inline
|
||||
: DIPROPRANGE_NOMAX HEX: 7FFFFFFF ; inline
|
||||
: MAXCPOINTSNUM 8 ; inline
|
||||
CONSTANT: DIPROPRANGE_NOMIN HEX: 80000000
|
||||
CONSTANT: DIPROPRANGE_NOMAX HEX: 7FFFFFFF
|
||||
CONSTANT: MAXCPOINTSNUM 8
|
||||
|
||||
: DIPH_DEVICE 0 ; inline
|
||||
: DIPH_BYOFFSET 1 ; inline
|
||||
: DIPH_BYID 2 ; inline
|
||||
: DIPH_BYUSAGE 3 ; inline
|
||||
CONSTANT: DIPH_DEVICE 0
|
||||
CONSTANT: DIPH_BYOFFSET 1
|
||||
CONSTANT: DIPH_BYID 2
|
||||
CONSTANT: DIPH_BYUSAGE 3
|
||||
|
||||
: DIMAKEUSAGEDWORD ( UsagePage Usage -- DWORD ) 16 shift bitor ; inline
|
||||
|
||||
: DIPROP_BUFFERSIZE 1 <alien> ; inline
|
||||
: DIPROP_AXISMODE 2 <alien> ; inline
|
||||
: DIPROP_BUFFERSIZE ( -- alien ) 1 <alien> ; inline
|
||||
: DIPROP_AXISMODE ( -- alien ) 2 <alien> ; inline
|
||||
|
||||
: DIPROPAXISMODE_ABS 0 ; inline
|
||||
: DIPROPAXISMODE_REL 1 ; inline
|
||||
CONSTANT: DIPROPAXISMODE_ABS 0
|
||||
CONSTANT: DIPROPAXISMODE_REL 1
|
||||
|
||||
: DIPROP_GRANULARITY 3 <alien> ; inline
|
||||
: DIPROP_RANGE 4 <alien> ; inline
|
||||
: DIPROP_DEADZONE 5 <alien> ; inline
|
||||
: DIPROP_SATURATION 6 <alien> ; inline
|
||||
: DIPROP_FFGAIN 7 <alien> ; inline
|
||||
: DIPROP_FFLOAD 8 <alien> ; inline
|
||||
: DIPROP_AUTOCENTER 9 <alien> ; inline
|
||||
: DIPROP_GRANULARITY ( -- alien ) 3 <alien> ; inline
|
||||
: DIPROP_RANGE ( -- alien ) 4 <alien> ; inline
|
||||
: DIPROP_DEADZONE ( -- alien ) 5 <alien> ; inline
|
||||
: DIPROP_SATURATION ( -- alien ) 6 <alien> ; inline
|
||||
: DIPROP_FFGAIN ( -- alien ) 7 <alien> ; inline
|
||||
: DIPROP_FFLOAD ( -- alien ) 8 <alien> ; inline
|
||||
: DIPROP_AUTOCENTER ( -- alien ) 9 <alien> ; inline
|
||||
|
||||
: DIPROPAUTOCENTER_OFF 0 ; inline
|
||||
: DIPROPAUTOCENTER_ON 1 ; inline
|
||||
CONSTANT: DIPROPAUTOCENTER_OFF 0
|
||||
CONSTANT: DIPROPAUTOCENTER_ON 1
|
||||
|
||||
: DIPROP_CALIBRATIONMODE 10 <alien> ; inline
|
||||
: DIPROP_CALIBRATIONMODE ( -- alien ) 10 <alien> ; inline
|
||||
|
||||
: DIPROPCALIBRATIONMODE_COOKED 0 ; inline
|
||||
: DIPROPCALIBRATIONMODE_RAW 1 ; inline
|
||||
CONSTANT: DIPROPCALIBRATIONMODE_COOKED 0
|
||||
CONSTANT: DIPROPCALIBRATIONMODE_RAW 1
|
||||
|
||||
: DIPROP_CALIBRATION 11 <alien> ; inline
|
||||
: DIPROP_GUIDANDPATH 12 <alien> ; inline
|
||||
: DIPROP_INSTANCENAME 13 <alien> ; inline
|
||||
: DIPROP_PRODUCTNAME 14 <alien> ; inline
|
||||
: DIPROP_JOYSTICKID 15 <alien> ; inline
|
||||
: DIPROP_GETPORTDISPLAYNAME 16 <alien> ; inline
|
||||
: DIPROP_PHYSICALRANGE 18 <alien> ; inline
|
||||
: DIPROP_LOGICALRANGE 19 <alien> ; inline
|
||||
: DIPROP_KEYNAME 20 <alien> ; inline
|
||||
: DIPROP_CPOINTS 21 <alien> ; inline
|
||||
: DIPROP_APPDATA 22 <alien> ; inline
|
||||
: DIPROP_SCANCODE 23 <alien> ; inline
|
||||
: DIPROP_VIDPID 24 <alien> ; inline
|
||||
: DIPROP_USERNAME 25 <alien> ; inline
|
||||
: DIPROP_TYPENAME 26 <alien> ; inline
|
||||
: DIPROP_CALIBRATION ( -- alien ) 11 <alien> ; inline
|
||||
: DIPROP_GUIDANDPATH ( -- alien ) 12 <alien> ; inline
|
||||
: DIPROP_INSTANCENAME ( -- alien ) 13 <alien> ; inline
|
||||
: DIPROP_PRODUCTNAME ( -- alien ) 14 <alien> ; inline
|
||||
: DIPROP_JOYSTICKID ( -- alien ) 15 <alien> ; inline
|
||||
: DIPROP_GETPORTDISPLAYNAME ( -- alien ) 16 <alien> ; inline
|
||||
: DIPROP_PHYSICALRANGE ( -- alien ) 18 <alien> ; inline
|
||||
: DIPROP_LOGICALRANGE ( -- alien ) 19 <alien> ; inline
|
||||
: DIPROP_KEYNAME ( -- alien ) 20 <alien> ; inline
|
||||
: DIPROP_CPOINTS ( -- alien ) 21 <alien> ; inline
|
||||
: DIPROP_APPDATA ( -- alien ) 22 <alien> ; inline
|
||||
: DIPROP_SCANCODE ( -- alien ) 23 <alien> ; inline
|
||||
: DIPROP_VIDPID ( -- alien ) 24 <alien> ; inline
|
||||
: DIPROP_USERNAME ( -- alien ) 25 <alien> ; inline
|
||||
: DIPROP_TYPENAME ( -- alien ) 26 <alien> ; inline
|
||||
|
||||
: GUID_XAxis GUID: {A36D02E0-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_YAxis GUID: {A36D02E1-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_ZAxis GUID: {A36D02E2-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_RxAxis GUID: {A36D02F4-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_RyAxis GUID: {A36D02F5-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_RzAxis GUID: {A36D02E3-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_Slider GUID: {A36D02E4-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_Button GUID: {A36D02F0-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_Key GUID: {55728220-D33C-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_POV GUID: {A36D02F2-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_Unknown GUID: {A36D02F3-C9F3-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_SysMouse GUID: {6F1D2B60-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_SysKeyboard GUID: {6F1D2B61-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_Joystick GUID: {6F1D2B70-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_SysMouseEm GUID: {6F1D2B80-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_SysMouseEm2 GUID: {6F1D2B81-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_SysKeyboardEm GUID: {6F1D2B82-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
: GUID_SysKeyboardEm2 GUID: {6F1D2B83-D5A0-11CF-BFC7-444553540000} ; inline
|
||||
CONSTANT: GUID_XAxis GUID: {A36D02E0-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_YAxis GUID: {A36D02E1-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_ZAxis GUID: {A36D02E2-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_RxAxis GUID: {A36D02F4-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_RyAxis GUID: {A36D02F5-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_RzAxis GUID: {A36D02E3-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_Slider GUID: {A36D02E4-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_Button GUID: {A36D02F0-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_Key GUID: {55728220-D33C-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_POV GUID: {A36D02F2-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_Unknown GUID: {A36D02F3-C9F3-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_SysMouse GUID: {6F1D2B60-D5A0-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_SysKeyboard GUID: {6F1D2B61-D5A0-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_Joystick GUID: {6F1D2B70-D5A0-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_SysMouseEm GUID: {6F1D2B80-D5A0-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_SysMouseEm2 GUID: {6F1D2B81-D5A0-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_SysKeyboardEm GUID: {6F1D2B82-D5A0-11CF-BFC7-444553540000}
|
||||
CONSTANT: GUID_SysKeyboardEm2 GUID: {6F1D2B83-D5A0-11CF-BFC7-444553540000}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
USING: kernel ;
|
||||
USING: kernel constants ;
|
||||
IN: windows.errors
|
||||
|
||||
: ERROR_SUCCESS 0 ; inline
|
||||
: ERROR_NO_MORE_FILES 18 ; inline
|
||||
: ERROR_HANDLE_EOF 38 ; inline
|
||||
: ERROR_BROKEN_PIPE 109 ; inline
|
||||
: ERROR_ENVVAR_NOT_FOUND 203 ; inline
|
||||
: ERROR_IO_INCOMPLETE 996 ; inline
|
||||
: ERROR_IO_PENDING 997 ; inline
|
||||
CONSTANT: ERROR_SUCCESS 0
|
||||
CONSTANT: ERROR_NO_MORE_FILES 18
|
||||
CONSTANT: ERROR_HANDLE_EOF 38
|
||||
CONSTANT: ERROR_BROKEN_PIPE 109
|
||||
CONSTANT: ERROR_ENVVAR_NOT_FOUND 203
|
||||
CONSTANT: ERROR_IO_INCOMPLETE 996
|
||||
CONSTANT: ERROR_IO_PENDING 997
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
! FUNCTION: AbortDoc
|
||||
! Copyright (C) 2005, 2006 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien alien.syntax kernel windows.types alias ;
|
||||
USING: alien alien.syntax kernel windows.types alias constants ;
|
||||
IN: windows.gdi32
|
||||
|
||||
! Stock Logical Objects
|
||||
: WHITE_BRUSH 0 ; inline
|
||||
: LTGRAY_BRUSH 1 ; inline
|
||||
: GRAY_BRUSH 2 ; inline
|
||||
: DKGRAY_BRUSH 3 ; inline
|
||||
: BLACK_BRUSH 4 ; inline
|
||||
: NULL_BRUSH 5 ; inline
|
||||
: HOLLOW_BRUSH NULL_BRUSH ; inline
|
||||
: WHITE_PEN 6 ; inline
|
||||
: BLACK_PEN 7 ; inline
|
||||
: NULL_PEN 8 ; inline
|
||||
: OEM_FIXED_FONT 10 ; inline
|
||||
: ANSI_FIXED_FONT 11 ; inline
|
||||
: ANSI_VAR_FONT 12 ; inline
|
||||
: SYSTEM_FONT 13 ; inline
|
||||
: DEVICE_DEFAULT_FONT 14 ; inline
|
||||
: DEFAULT_PALETTE 15 ; inline
|
||||
: SYSTEM_FIXED_FONT 16 ; inline
|
||||
: DEFAULT_GUI_FONT 17 ; inline
|
||||
: DC_BRUSH 18 ; inline
|
||||
: DC_PEN 19 ; inline
|
||||
CONSTANT: WHITE_BRUSH 0
|
||||
CONSTANT: LTGRAY_BRUSH 1
|
||||
CONSTANT: GRAY_BRUSH 2
|
||||
CONSTANT: DKGRAY_BRUSH 3
|
||||
CONSTANT: BLACK_BRUSH 4
|
||||
CONSTANT: NULL_BRUSH 5
|
||||
ALIAS: HOLLOW_BRUSH NULL_BRUSH
|
||||
CONSTANT: WHITE_PEN 6
|
||||
CONSTANT: BLACK_PEN 7
|
||||
CONSTANT: NULL_PEN 8
|
||||
CONSTANT: OEM_FIXED_FONT 10
|
||||
CONSTANT: ANSI_FIXED_FONT 11
|
||||
CONSTANT: ANSI_VAR_FONT 12
|
||||
CONSTANT: SYSTEM_FONT 13
|
||||
CONSTANT: DEVICE_DEFAULT_FONT 14
|
||||
CONSTANT: DEFAULT_PALETTE 15
|
||||
CONSTANT: SYSTEM_FIXED_FONT 16
|
||||
CONSTANT: DEFAULT_GUI_FONT 17
|
||||
CONSTANT: DC_BRUSH 18
|
||||
CONSTANT: DC_PEN 19
|
||||
|
||||
: BI_RGB 0 ; inline
|
||||
: BI_RLE8 1 ; inline
|
||||
: BI_RLE4 2 ; inline
|
||||
: BI_BITFIELDS 3 ; inline
|
||||
CONSTANT: BI_RGB 0
|
||||
CONSTANT: BI_RLE8 1
|
||||
CONSTANT: BI_RLE4 2
|
||||
CONSTANT: BI_BITFIELDS 3
|
||||
|
||||
: DIB_RGB_COLORS 0 ; inline
|
||||
: DIB_PAL_COLORS 1 ; inline
|
||||
CONSTANT: DIB_RGB_COLORS 0
|
||||
CONSTANT: DIB_PAL_COLORS 1
|
||||
|
||||
LIBRARY: gdi32
|
||||
|
||||
|
|
|
@ -1,93 +1,93 @@
|
|||
! Copyright (C) 2005, 2006 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien alien.syntax kernel windows.types alias ;
|
||||
USING: alien alien.syntax kernel windows.types alias constants ;
|
||||
IN: windows.kernel32
|
||||
|
||||
: MAX_PATH 260 ; inline
|
||||
CONSTANT: MAX_PATH 260
|
||||
|
||||
: GHND HEX: 40 ; inline
|
||||
: GMEM_FIXED 0 ; inline
|
||||
: GMEM_MOVEABLE 2 ; inline
|
||||
: GMEM_ZEROINIT HEX: 40 ; inline
|
||||
: GPTR HEX: 40 ; inline
|
||||
CONSTANT: GHND HEX: 40
|
||||
CONSTANT: GMEM_FIXED 0
|
||||
CONSTANT: GMEM_MOVEABLE 2
|
||||
CONSTANT: GMEM_ZEROINIT HEX: 40
|
||||
CONSTANT: GPTR HEX: 40
|
||||
|
||||
: GENERIC_READ HEX: 80000000 ; inline
|
||||
: GENERIC_WRITE HEX: 40000000 ; inline
|
||||
: GENERIC_EXECUTE HEX: 20000000 ; inline
|
||||
: GENERIC_ALL HEX: 10000000 ; inline
|
||||
CONSTANT: GENERIC_READ HEX: 80000000
|
||||
CONSTANT: GENERIC_WRITE HEX: 40000000
|
||||
CONSTANT: GENERIC_EXECUTE HEX: 20000000
|
||||
CONSTANT: GENERIC_ALL HEX: 10000000
|
||||
|
||||
: CREATE_NEW 1 ; inline
|
||||
: CREATE_ALWAYS 2 ; inline
|
||||
: OPEN_EXISTING 3 ; inline
|
||||
: OPEN_ALWAYS 4 ; inline
|
||||
: TRUNCATE_EXISTING 5 ; inline
|
||||
CONSTANT: CREATE_NEW 1
|
||||
CONSTANT: CREATE_ALWAYS 2
|
||||
CONSTANT: OPEN_EXISTING 3
|
||||
CONSTANT: OPEN_ALWAYS 4
|
||||
CONSTANT: TRUNCATE_EXISTING 5
|
||||
|
||||
: FILE_LIST_DIRECTORY HEX: 00000001 ; inline
|
||||
: FILE_READ_DAT HEX: 00000001 ; inline
|
||||
: FILE_ADD_FILE HEX: 00000002 ; inline
|
||||
: FILE_WRITE_DATA HEX: 00000002 ; inline
|
||||
: FILE_ADD_SUBDIRECTORY HEX: 00000004 ; inline
|
||||
: FILE_APPEND_DATA HEX: 00000004 ; inline
|
||||
: FILE_CREATE_PIPE_INSTANCE HEX: 00000004 ; inline
|
||||
: FILE_READ_EA HEX: 00000008 ; inline
|
||||
: FILE_READ_PROPERTIES HEX: 00000008 ; inline
|
||||
: FILE_WRITE_EA HEX: 00000010 ; inline
|
||||
: FILE_WRITE_PROPERTIES HEX: 00000010 ; inline
|
||||
: FILE_EXECUTE HEX: 00000020 ; inline
|
||||
: FILE_TRAVERSE HEX: 00000020 ; inline
|
||||
: FILE_DELETE_CHILD HEX: 00000040 ; inline
|
||||
: FILE_READ_ATTRIBUTES HEX: 00000080 ; inline
|
||||
: FILE_WRITE_ATTRIBUTES HEX: 00000100 ; inline
|
||||
CONSTANT: FILE_LIST_DIRECTORY HEX: 00000001
|
||||
CONSTANT: FILE_READ_DAT HEX: 00000001
|
||||
CONSTANT: FILE_ADD_FILE HEX: 00000002
|
||||
CONSTANT: FILE_WRITE_DATA HEX: 00000002
|
||||
CONSTANT: FILE_ADD_SUBDIRECTORY HEX: 00000004
|
||||
CONSTANT: FILE_APPEND_DATA HEX: 00000004
|
||||
CONSTANT: FILE_CREATE_PIPE_INSTANCE HEX: 00000004
|
||||
CONSTANT: FILE_READ_EA HEX: 00000008
|
||||
CONSTANT: FILE_READ_PROPERTIES HEX: 00000008
|
||||
CONSTANT: FILE_WRITE_EA HEX: 00000010
|
||||
CONSTANT: FILE_WRITE_PROPERTIES HEX: 00000010
|
||||
CONSTANT: FILE_EXECUTE HEX: 00000020
|
||||
CONSTANT: FILE_TRAVERSE HEX: 00000020
|
||||
CONSTANT: FILE_DELETE_CHILD HEX: 00000040
|
||||
CONSTANT: FILE_READ_ATTRIBUTES HEX: 00000080
|
||||
CONSTANT: FILE_WRITE_ATTRIBUTES HEX: 00000100
|
||||
|
||||
: FILE_SHARE_READ 1 ; inline
|
||||
: FILE_SHARE_WRITE 2 ; inline
|
||||
: FILE_SHARE_DELETE 4 ; inline
|
||||
: FILE_SHARE_VALID_FLAGS 7 ; inline
|
||||
CONSTANT: FILE_SHARE_READ 1
|
||||
CONSTANT: FILE_SHARE_WRITE 2
|
||||
CONSTANT: FILE_SHARE_DELETE 4
|
||||
CONSTANT: FILE_SHARE_VALID_FLAGS 7
|
||||
|
||||
: FILE_FLAG_WRITE_THROUGH HEX: 80000000 ; inline
|
||||
: FILE_FLAG_OVERLAPPED HEX: 40000000 ; inline
|
||||
: FILE_FLAG_NO_BUFFERING HEX: 20000000 ; inline
|
||||
: FILE_FLAG_RANDOM_ACCESS HEX: 10000000 ; inline
|
||||
: FILE_FLAG_SEQUENTIAL_SCAN HEX: 08000000 ; inline
|
||||
: FILE_FLAG_DELETE_ON_CLOSE HEX: 04000000 ; inline
|
||||
: FILE_FLAG_BACKUP_SEMANTICS HEX: 02000000 ; inline
|
||||
: FILE_FLAG_POSIX_SEMANTICS HEX: 01000000 ; inline
|
||||
: FILE_FLAG_OPEN_REPARSE_POINT HEX: 00200000 ; inline
|
||||
: FILE_FLAG_OPEN_NO_RECALL HEX: 00100000 ; inline
|
||||
: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000 ; inline
|
||||
CONSTANT: FILE_FLAG_WRITE_THROUGH HEX: 80000000
|
||||
CONSTANT: FILE_FLAG_OVERLAPPED HEX: 40000000
|
||||
CONSTANT: FILE_FLAG_NO_BUFFERING HEX: 20000000
|
||||
CONSTANT: FILE_FLAG_RANDOM_ACCESS HEX: 10000000
|
||||
CONSTANT: FILE_FLAG_SEQUENTIAL_SCAN HEX: 08000000
|
||||
CONSTANT: FILE_FLAG_DELETE_ON_CLOSE HEX: 04000000
|
||||
CONSTANT: FILE_FLAG_BACKUP_SEMANTICS HEX: 02000000
|
||||
CONSTANT: FILE_FLAG_POSIX_SEMANTICS HEX: 01000000
|
||||
CONSTANT: FILE_FLAG_OPEN_REPARSE_POINT HEX: 00200000
|
||||
CONSTANT: FILE_FLAG_OPEN_NO_RECALL HEX: 00100000
|
||||
CONSTANT: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000
|
||||
|
||||
: FILE_ATTRIBUTE_READONLY HEX: 00000001 ; inline
|
||||
: FILE_ATTRIBUTE_HIDDEN HEX: 00000002 ; inline
|
||||
: FILE_ATTRIBUTE_SYSTEM HEX: 00000004 ; inline
|
||||
: FILE_ATTRIBUTE_DIRECTORY HEX: 00000010 ; inline
|
||||
: FILE_ATTRIBUTE_ARCHIVE HEX: 00000020 ; inline
|
||||
: FILE_ATTRIBUTE_DEVICE HEX: 00000040 ; inline
|
||||
: FILE_ATTRIBUTE_NORMAL HEX: 00000080 ; inline
|
||||
: FILE_ATTRIBUTE_TEMPORARY HEX: 00000100 ; inline
|
||||
: FILE_ATTRIBUTE_SPARSE_FILE HEX: 00000200 ; inline
|
||||
: FILE_ATTRIBUTE_REPARSE_POINT HEX: 00000400 ; inline
|
||||
: FILE_ATTRIBUTE_COMPRESSED HEX: 00000800 ; inline
|
||||
: FILE_ATTRIBUTE_OFFLINE HEX: 00001000 ; inline
|
||||
: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000 ; inline
|
||||
: FILE_ATTRIBUTE_ENCRYPTED HEX: 00004000 ; inline
|
||||
CONSTANT: FILE_ATTRIBUTE_READONLY HEX: 00000001
|
||||
CONSTANT: FILE_ATTRIBUTE_HIDDEN HEX: 00000002
|
||||
CONSTANT: FILE_ATTRIBUTE_SYSTEM HEX: 00000004
|
||||
CONSTANT: FILE_ATTRIBUTE_DIRECTORY HEX: 00000010
|
||||
CONSTANT: FILE_ATTRIBUTE_ARCHIVE HEX: 00000020
|
||||
CONSTANT: FILE_ATTRIBUTE_DEVICE HEX: 00000040
|
||||
CONSTANT: FILE_ATTRIBUTE_NORMAL HEX: 00000080
|
||||
CONSTANT: FILE_ATTRIBUTE_TEMPORARY HEX: 00000100
|
||||
CONSTANT: FILE_ATTRIBUTE_SPARSE_FILE HEX: 00000200
|
||||
CONSTANT: FILE_ATTRIBUTE_REPARSE_POINT HEX: 00000400
|
||||
CONSTANT: FILE_ATTRIBUTE_COMPRESSED HEX: 00000800
|
||||
CONSTANT: FILE_ATTRIBUTE_OFFLINE HEX: 00001000
|
||||
CONSTANT: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000
|
||||
CONSTANT: FILE_ATTRIBUTE_ENCRYPTED HEX: 00004000
|
||||
|
||||
: FILE_NOTIFY_CHANGE_FILE HEX: 001 ; inline
|
||||
: FILE_NOTIFY_CHANGE_DIR_NAME HEX: 002 ; inline
|
||||
: FILE_NOTIFY_CHANGE_ATTRIBUTES HEX: 004 ; inline
|
||||
: FILE_NOTIFY_CHANGE_SIZE HEX: 008 ; inline
|
||||
: FILE_NOTIFY_CHANGE_LAST_WRITE HEX: 010 ; inline
|
||||
: FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020 ; inline
|
||||
: FILE_NOTIFY_CHANGE_CREATION HEX: 040 ; inline
|
||||
: FILE_NOTIFY_CHANGE_EA HEX: 080 ; inline
|
||||
: FILE_NOTIFY_CHANGE_SECURITY HEX: 100 ; inline
|
||||
: FILE_NOTIFY_CHANGE_FILE_NAME HEX: 200 ; inline
|
||||
: FILE_NOTIFY_CHANGE_ALL HEX: 3ff ; inline
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_FILE HEX: 001
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_DIR_NAME HEX: 002
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_ATTRIBUTES HEX: 004
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_SIZE HEX: 008
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_LAST_WRITE HEX: 010
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_CREATION HEX: 040
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_EA HEX: 080
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_SECURITY HEX: 100
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_FILE_NAME HEX: 200
|
||||
CONSTANT: FILE_NOTIFY_CHANGE_ALL HEX: 3ff
|
||||
|
||||
: FILE_ACTION_ADDED 1 ; inline
|
||||
: FILE_ACTION_REMOVED 2 ; inline
|
||||
: FILE_ACTION_MODIFIED 3 ; inline
|
||||
: FILE_ACTION_RENAMED_OLD_NAME 4 ; inline
|
||||
: FILE_ACTION_RENAMED_NEW_NAME 5 ; inline
|
||||
CONSTANT: FILE_ACTION_ADDED 1
|
||||
CONSTANT: FILE_ACTION_REMOVED 2
|
||||
CONSTANT: FILE_ACTION_MODIFIED 3
|
||||
CONSTANT: FILE_ACTION_RENAMED_OLD_NAME 4
|
||||
CONSTANT: FILE_ACTION_RENAMED_NEW_NAME 5
|
||||
|
||||
C-STRUCT: FILE_NOTIFY_INFORMATION
|
||||
{ "DWORD" "NextEntryOffset" }
|
||||
|
@ -96,107 +96,106 @@ C-STRUCT: FILE_NOTIFY_INFORMATION
|
|||
{ "WCHAR[1]" "FileName" } ;
|
||||
TYPEDEF: FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION
|
||||
|
||||
: STD_INPUT_HANDLE -10 ; inline
|
||||
: STD_OUTPUT_HANDLE -11 ; inline
|
||||
: STD_ERROR_HANDLE -12 ; inline
|
||||
CONSTANT: STD_INPUT_HANDLE -10
|
||||
CONSTANT: STD_OUTPUT_HANDLE -11
|
||||
CONSTANT: STD_ERROR_HANDLE -12
|
||||
|
||||
: INVALID_HANDLE_VALUE -1 <alien> ; inline
|
||||
: INVALID_FILE_SIZE HEX: FFFFFFFF ; inline
|
||||
: INVALID_SET_FILE_POINTER HEX: ffffffff ; inline
|
||||
: INVALID_HANDLE_VALUE ( -- alien ) -1 <alien> ; inline
|
||||
CONSTANT: INVALID_FILE_SIZE HEX: FFFFFFFF
|
||||
CONSTANT: INVALID_SET_FILE_POINTER HEX: ffffffff
|
||||
|
||||
: FILE_BEGIN 0 ; inline
|
||||
: FILE_CURRENT 1 ; inline
|
||||
: FILE_END 2 ; inline
|
||||
CONSTANT: FILE_BEGIN 0
|
||||
CONSTANT: FILE_CURRENT 1
|
||||
CONSTANT: FILE_END 2
|
||||
|
||||
: OF_READ 0 ;
|
||||
: OF_READWRITE 2 ;
|
||||
: OF_WRITE 1 ;
|
||||
: OF_SHARE_COMPAT 0 ;
|
||||
: OF_SHARE_DENY_NONE 64 ;
|
||||
: OF_SHARE_DENY_READ 48 ;
|
||||
: OF_SHARE_DENY_WRITE 32 ;
|
||||
: OF_SHARE_EXCLUSIVE 16 ;
|
||||
: OF_CANCEL 2048 ;
|
||||
: OF_CREATE 4096 ;
|
||||
: OF_DELETE 512 ;
|
||||
: OF_EXIST 16384 ;
|
||||
: OF_PARSE 256 ;
|
||||
: OF_PROMPT 8192 ;
|
||||
: OF_REOPEN 32768 ;
|
||||
: OF_VERIFY 1024 ;
|
||||
CONSTANT: OF_READ 0
|
||||
CONSTANT: OF_READWRITE 2
|
||||
CONSTANT: OF_WRITE 1
|
||||
CONSTANT: OF_SHARE_COMPAT 0
|
||||
CONSTANT: OF_SHARE_DENY_NONE 64
|
||||
CONSTANT: OF_SHARE_DENY_READ 48
|
||||
CONSTANT: OF_SHARE_DENY_WRITE 32
|
||||
CONSTANT: OF_SHARE_EXCLUSIVE 16
|
||||
CONSTANT: OF_CANCEL 2048
|
||||
CONSTANT: OF_CREATE 4096
|
||||
CONSTANT: OF_DELETE 512
|
||||
CONSTANT: OF_EXIST 16384
|
||||
CONSTANT: OF_PARSE 256
|
||||
CONSTANT: OF_PROMPT 8192
|
||||
CONSTANT: OF_REOPEN 32768
|
||||
CONSTANT: OF_VERIFY 1024
|
||||
|
||||
: INFINITE HEX: FFFFFFFF ; inline
|
||||
CONSTANT: INFINITE HEX: FFFFFFFF
|
||||
|
||||
! From C:\cygwin\usr\include\w32api\winbase.h
|
||||
: FILE_TYPE_UNKNOWN 0 ;
|
||||
: FILE_TYPE_DISK 1 ;
|
||||
: FILE_TYPE_CHAR 2 ;
|
||||
: FILE_TYPE_PIPE 3 ;
|
||||
: FILE_TYPE_REMOTE HEX: 8000 ;
|
||||
CONSTANT: FILE_TYPE_UNKNOWN 0
|
||||
CONSTANT: FILE_TYPE_DISK 1
|
||||
CONSTANT: FILE_TYPE_CHAR 2
|
||||
CONSTANT: FILE_TYPE_PIPE 3
|
||||
CONSTANT: FILE_TYPE_REMOTE HEX: 8000
|
||||
|
||||
: TIME_ZONE_ID_UNKNOWN 0 ; inline
|
||||
: TIME_ZONE_ID_STANDARD 1 ; inline
|
||||
: TIME_ZONE_ID_DAYLIGHT 2 ; inline
|
||||
: TIME_ZONE_ID_INVALID HEX: FFFFFFFF ; inline
|
||||
CONSTANT: TIME_ZONE_ID_UNKNOWN 0
|
||||
CONSTANT: TIME_ZONE_ID_STANDARD 1
|
||||
CONSTANT: TIME_ZONE_ID_DAYLIGHT 2
|
||||
CONSTANT: TIME_ZONE_ID_INVALID HEX: FFFFFFFF
|
||||
|
||||
CONSTANT: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
|
||||
CONSTANT: PF_SSE3_INSTRUCTIONS_AVAILABLE 13
|
||||
|
||||
: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline
|
||||
: PF_SSE3_INSTRUCTIONS_AVAILABLE 13 ; inline
|
||||
CONSTANT: MAX_COMPUTERNAME_LENGTH 15
|
||||
CONSTANT: UNLEN 256
|
||||
|
||||
: MAX_COMPUTERNAME_LENGTH 15 ; inline
|
||||
: UNLEN 256 ; inline
|
||||
CONSTANT: PROCESS_TERMINATE HEX: 1
|
||||
CONSTANT: PROCESS_CREATE_THREAD HEX: 2
|
||||
CONSTANT: PROCESS_VM_OPERATION HEX: 8
|
||||
CONSTANT: PROCESS_VM_READ HEX: 10
|
||||
CONSTANT: PROCESS_VM_WRITE HEX: 20
|
||||
CONSTANT: PROCESS_DUP_HANDLE HEX: 40
|
||||
CONSTANT: PROCESS_CREATE_PROCESS HEX: 80
|
||||
CONSTANT: PROCESS_SET_QUOTA HEX: 100
|
||||
CONSTANT: PROCESS_SET_INFORMATION HEX: 200
|
||||
CONSTANT: PROCESS_QUERY_INFORMATION HEX: 400
|
||||
|
||||
: PROCESS_TERMINATE ( -- n ) HEX: 1 ; inline
|
||||
: PROCESS_CREATE_THREAD ( -- n ) HEX: 2 ; inline
|
||||
: PROCESS_VM_OPERATION ( -- n ) HEX: 8 ; inline
|
||||
: PROCESS_VM_READ ( -- n ) HEX: 10 ; inline
|
||||
: PROCESS_VM_WRITE ( -- n ) HEX: 20 ; inline
|
||||
: PROCESS_DUP_HANDLE ( -- n ) HEX: 40 ; inline
|
||||
: PROCESS_CREATE_PROCESS ( -- n ) HEX: 80 ; inline
|
||||
: PROCESS_SET_QUOTA ( -- n ) HEX: 100 ; inline
|
||||
: PROCESS_SET_INFORMATION ( -- n ) HEX: 200 ; inline
|
||||
: PROCESS_QUERY_INFORMATION ( -- n ) HEX: 400 ; inline
|
||||
CONSTANT: MEM_COMMIT HEX: 1000
|
||||
CONSTANT: MEM_RELEASE HEX: 8000
|
||||
|
||||
: MEM_COMMIT ( -- n ) HEX: 1000 ; inline
|
||||
: MEM_RELEASE ( -- n ) HEX: 8000 ; inline
|
||||
CONSTANT: PAGE_NOACCESS 1
|
||||
CONSTANT: PAGE_READONLY 2
|
||||
CONSTANT: PAGE_READWRITE 4
|
||||
CONSTANT: PAGE_WRITECOPY 8
|
||||
CONSTANT: PAGE_EXECUTE HEX: 10
|
||||
CONSTANT: PAGE_EXECUTE_READ HEX: 20
|
||||
CONSTANT: PAGE_EXECUTE_READWRITE HEX: 40
|
||||
CONSTANT: PAGE_EXECUTE_WRITECOPY HEX: 80
|
||||
CONSTANT: PAGE_GUARD HEX: 100
|
||||
CONSTANT: PAGE_NOCACHE HEX: 200
|
||||
|
||||
: PAGE_NOACCESS 1 ; inline
|
||||
: PAGE_READONLY 2 ; inline
|
||||
: PAGE_READWRITE 4 ; inline
|
||||
: PAGE_WRITECOPY 8 ; inline
|
||||
: PAGE_EXECUTE HEX: 10 ; inline
|
||||
: PAGE_EXECUTE_READ HEX: 20 ; inline
|
||||
: PAGE_EXECUTE_READWRITE HEX: 40 ; inline
|
||||
: PAGE_EXECUTE_WRITECOPY HEX: 80 ; inline
|
||||
: PAGE_GUARD HEX: 100 ; inline
|
||||
: PAGE_NOCACHE HEX: 200 ; inline
|
||||
CONSTANT: SEC_BASED HEX: 00200000
|
||||
CONSTANT: SEC_NO_CHANGE HEX: 00400000
|
||||
CONSTANT: SEC_FILE HEX: 00800000
|
||||
CONSTANT: SEC_IMAGE HEX: 01000000
|
||||
CONSTANT: SEC_VLM HEX: 02000000
|
||||
CONSTANT: SEC_RESERVE HEX: 04000000
|
||||
CONSTANT: SEC_COMMIT HEX: 08000000
|
||||
CONSTANT: SEC_NOCACHE HEX: 10000000
|
||||
ALIAS: MEM_IMAGE SEC_IMAGE
|
||||
|
||||
: SEC_BASED HEX: 00200000 ; inline
|
||||
: SEC_NO_CHANGE HEX: 00400000 ; inline
|
||||
: SEC_FILE HEX: 00800000 ; inline
|
||||
: SEC_IMAGE HEX: 01000000 ; inline
|
||||
: SEC_VLM HEX: 02000000 ; inline
|
||||
: SEC_RESERVE HEX: 04000000 ; inline
|
||||
: SEC_COMMIT HEX: 08000000 ; inline
|
||||
: SEC_NOCACHE HEX: 10000000 ; inline
|
||||
: MEM_IMAGE SEC_IMAGE ; inline
|
||||
CONSTANT: ERROR_ALREADY_EXISTS 183
|
||||
|
||||
: ERROR_ALREADY_EXISTS 183 ; inline
|
||||
CONSTANT: FILE_MAP_ALL_ACCESS HEX: f001f
|
||||
CONSTANT: FILE_MAP_READ 4
|
||||
CONSTANT: FILE_MAP_WRITE 2
|
||||
CONSTANT: FILE_MAP_COPY 1
|
||||
|
||||
: FILE_MAP_ALL_ACCESS HEX: f001f ;
|
||||
: FILE_MAP_READ 4 ;
|
||||
: FILE_MAP_WRITE 2 ;
|
||||
: FILE_MAP_COPY 1 ;
|
||||
|
||||
: THREAD_MODE_BACKGROUND_BEGIN HEX: 10000 ; inline
|
||||
: THREAD_MODE_BACKGROUND_END HEX: 20000 ; inline
|
||||
: THREAD_PRIORITY_ABOVE_NORMAL 1 ; inline
|
||||
: THREAD_PRIORITY_BELOW_NORMAL -1 ; inline
|
||||
: THREAD_PRIORITY_HIGHEST 2 ; inline
|
||||
: THREAD_PRIORITY_IDLE -15 ; inline
|
||||
: THREAD_PRIORITY_LOWEST -2 ; inline
|
||||
: THREAD_PRIORITY_NORMAL 0 ; inline
|
||||
: THREAD_PRIORITY_TIME_CRITICAL 15 ; inline
|
||||
CONSTANT: THREAD_MODE_BACKGROUND_BEGIN HEX: 10000
|
||||
CONSTANT: THREAD_MODE_BACKGROUND_END HEX: 20000
|
||||
CONSTANT: THREAD_PRIORITY_ABOVE_NORMAL 1
|
||||
CONSTANT: THREAD_PRIORITY_BELOW_NORMAL -1
|
||||
CONSTANT: THREAD_PRIORITY_HIGHEST 2
|
||||
CONSTANT: THREAD_PRIORITY_IDLE -15
|
||||
CONSTANT: THREAD_PRIORITY_LOWEST -2
|
||||
CONSTANT: THREAD_PRIORITY_NORMAL 0
|
||||
CONSTANT: THREAD_PRIORITY_TIME_CRITICAL 15
|
||||
|
||||
C-STRUCT: OVERLAPPED
|
||||
{ "UINT_PTR" "internal" }
|
||||
|
@ -321,74 +320,74 @@ C-STRUCT: GUID
|
|||
{ { "UCHAR" 8 } "Data4" } ;
|
||||
|
||||
|
||||
: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege" ;
|
||||
: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege" ;
|
||||
: SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege" ;
|
||||
: SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege" ;
|
||||
: SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege" ;
|
||||
: SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege" ;
|
||||
: SE_TCB_NAME "SeTcbPrivilege" ;
|
||||
: SE_SECURITY_NAME "SeSecurityPrivilege" ;
|
||||
: SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege" ;
|
||||
: SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege" ;
|
||||
: SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege" ;
|
||||
: SE_SYSTEMTIME_NAME "SeSystemtimePrivilege" ;
|
||||
: SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege" ;
|
||||
: SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege" ;
|
||||
: SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege" ;
|
||||
: SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege" ;
|
||||
: SE_BACKUP_NAME "SeBackupPrivilege" ;
|
||||
: SE_RESTORE_NAME "SeRestorePrivilege" ;
|
||||
: SE_SHUTDOWN_NAME "SeShutdownPrivilege" ;
|
||||
: SE_DEBUG_NAME "SeDebugPrivilege" ;
|
||||
: SE_AUDIT_NAME "SeAuditPrivilege" ;
|
||||
: SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege" ;
|
||||
: SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege" ;
|
||||
: SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege" ;
|
||||
: SE_UNDOCK_NAME "SeUndockPrivilege" ;
|
||||
: SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege" ;
|
||||
: SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege" ;
|
||||
: SE_IMPERSONATE_NAME "SeImpersonatePrivilege" ;
|
||||
: SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege" ;
|
||||
CONSTANT: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege"
|
||||
CONSTANT: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege"
|
||||
CONSTANT: SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege"
|
||||
CONSTANT: SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege"
|
||||
CONSTANT: SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege"
|
||||
CONSTANT: SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege"
|
||||
CONSTANT: SE_TCB_NAME "SeTcbPrivilege"
|
||||
CONSTANT: SE_SECURITY_NAME "SeSecurityPrivilege"
|
||||
CONSTANT: SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege"
|
||||
CONSTANT: SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege"
|
||||
CONSTANT: SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege"
|
||||
CONSTANT: SE_SYSTEMTIME_NAME "SeSystemtimePrivilege"
|
||||
CONSTANT: SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege"
|
||||
CONSTANT: SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege"
|
||||
CONSTANT: SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege"
|
||||
CONSTANT: SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege"
|
||||
CONSTANT: SE_BACKUP_NAME "SeBackupPrivilege"
|
||||
CONSTANT: SE_RESTORE_NAME "SeRestorePrivilege"
|
||||
CONSTANT: SE_SHUTDOWN_NAME "SeShutdownPrivilege"
|
||||
CONSTANT: SE_DEBUG_NAME "SeDebugPrivilege"
|
||||
CONSTANT: SE_AUDIT_NAME "SeAuditPrivilege"
|
||||
CONSTANT: SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege"
|
||||
CONSTANT: SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege"
|
||||
CONSTANT: SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege"
|
||||
CONSTANT: SE_UNDOCK_NAME "SeUndockPrivilege"
|
||||
CONSTANT: SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege"
|
||||
CONSTANT: SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege"
|
||||
CONSTANT: SE_IMPERSONATE_NAME "SeImpersonatePrivilege"
|
||||
CONSTANT: SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege"
|
||||
|
||||
: SE_GROUP_MANDATORY HEX: 00000001 ;
|
||||
: SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002 ;
|
||||
: SE_GROUP_ENABLED HEX: 00000004 ;
|
||||
: SE_GROUP_OWNER HEX: 00000008 ;
|
||||
: SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010 ;
|
||||
: SE_GROUP_LOGON_ID HEX: C0000000 ;
|
||||
: SE_GROUP_RESOURCE HEX: 20000000 ;
|
||||
CONSTANT: SE_GROUP_MANDATORY HEX: 00000001
|
||||
CONSTANT: SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002
|
||||
CONSTANT: SE_GROUP_ENABLED HEX: 00000004
|
||||
CONSTANT: SE_GROUP_OWNER HEX: 00000008
|
||||
CONSTANT: SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010
|
||||
CONSTANT: SE_GROUP_LOGON_ID HEX: C0000000
|
||||
CONSTANT: SE_GROUP_RESOURCE HEX: 20000000
|
||||
|
||||
: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001 ;
|
||||
: SE_PRIVILEGE_ENABLED HEX: 00000002 ;
|
||||
: SE_PRIVILEGE_REMOVE HEX: 00000004 ;
|
||||
: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000 ;
|
||||
CONSTANT: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001
|
||||
CONSTANT: SE_PRIVILEGE_ENABLED HEX: 00000002
|
||||
CONSTANT: SE_PRIVILEGE_REMOVE HEX: 00000004
|
||||
CONSTANT: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000
|
||||
|
||||
: PRIVILEGE_SET_ALL_NECESSARY 1 ;
|
||||
CONSTANT: PRIVILEGE_SET_ALL_NECESSARY 1
|
||||
|
||||
: SE_OWNER_DEFAULTED HEX: 00000001 ;
|
||||
: SE_GROUP_DEFAULTED HEX: 00000002 ;
|
||||
: SE_DACL_PRESENT HEX: 00000004 ;
|
||||
: SE_DACL_DEFAULTED HEX: 00000008 ;
|
||||
: SE_SACL_PRESENT HEX: 00000010 ;
|
||||
: SE_SACL_DEFAULTED HEX: 00000020 ;
|
||||
: SE_DACL_AUTO_INHERIT_REQ HEX: 00000100 ;
|
||||
: SE_SACL_AUTO_INHERIT_REQ HEX: 00000200 ;
|
||||
: SE_DACL_AUTO_INHERITED HEX: 00000400 ;
|
||||
: SE_SACL_AUTO_INHERITED HEX: 00000800 ;
|
||||
: SE_DACL_PROTECTED HEX: 00001000 ;
|
||||
: SE_SACL_PROTECTED HEX: 00002000 ;
|
||||
: SE_SELF_RELATIVE HEX: 00008000 ;
|
||||
CONSTANT: SE_OWNER_DEFAULTED HEX: 00000001
|
||||
CONSTANT: SE_GROUP_DEFAULTED HEX: 00000002
|
||||
CONSTANT: SE_DACL_PRESENT HEX: 00000004
|
||||
CONSTANT: SE_DACL_DEFAULTED HEX: 00000008
|
||||
CONSTANT: SE_SACL_PRESENT HEX: 00000010
|
||||
CONSTANT: SE_SACL_DEFAULTED HEX: 00000020
|
||||
CONSTANT: SE_DACL_AUTO_INHERIT_REQ HEX: 00000100
|
||||
CONSTANT: SE_SACL_AUTO_INHERIT_REQ HEX: 00000200
|
||||
CONSTANT: SE_DACL_AUTO_INHERITED HEX: 00000400
|
||||
CONSTANT: SE_SACL_AUTO_INHERITED HEX: 00000800
|
||||
CONSTANT: SE_DACL_PROTECTED HEX: 00001000
|
||||
CONSTANT: SE_SACL_PROTECTED HEX: 00002000
|
||||
CONSTANT: SE_SELF_RELATIVE HEX: 00008000
|
||||
|
||||
: ANYSIZE_ARRAY 1 ; inline
|
||||
CONSTANT: ANYSIZE_ARRAY 1
|
||||
|
||||
: MAXIMUM_WAIT_OBJECTS 64 ; inline
|
||||
: MAXIMUM_SUSPEND_COUNT HEX: 7f ; inline
|
||||
: WAIT_OBJECT_0 0 ; inline
|
||||
: WAIT_ABANDONED_0 128 ; inline
|
||||
: WAIT_TIMEOUT 258 ; inline
|
||||
: WAIT_IO_COMPLETION HEX: c0 ; inline
|
||||
: WAIT_FAILED HEX: ffffffff ; inline
|
||||
CONSTANT: MAXIMUM_WAIT_OBJECTS 64
|
||||
CONSTANT: MAXIMUM_SUSPEND_COUNT HEX: 7f
|
||||
CONSTANT: WAIT_OBJECT_0 0
|
||||
CONSTANT: WAIT_ABANDONED_0 128
|
||||
CONSTANT: WAIT_TIMEOUT 258
|
||||
CONSTANT: WAIT_IO_COMPLETION HEX: c0
|
||||
CONSTANT: WAIT_FAILED HEX: ffffffff
|
||||
|
||||
C-STRUCT: LUID
|
||||
{ "DWORD" "LowPart" }
|
||||
|
@ -427,7 +426,7 @@ C-STRUCT: BY_HANDLE_FILE_INFORMATION
|
|||
{ "DWORD" "nFileIndexLow" } ;
|
||||
TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION
|
||||
|
||||
: OFS_MAXPATHNAME 128 ;
|
||||
CONSTANT: OFS_MAXPATHNAME 128
|
||||
|
||||
C-STRUCT: OFSTRUCT
|
||||
{ "BYTE" "cBytes" }
|
||||
|
@ -489,34 +488,34 @@ C-STRUCT: SECURITY_ATTRIBUTES
|
|||
{ "LPVOID" "lpSecurityDescriptor" }
|
||||
{ "BOOL" "bInheritHandle" } ;
|
||||
|
||||
: HANDLE_FLAG_INHERIT 1 ; inline
|
||||
: HANDLE_FLAG_PROTECT_FROM_CLOSE 2 ; inline
|
||||
CONSTANT: HANDLE_FLAG_INHERIT 1
|
||||
CONSTANT: HANDLE_FLAG_PROTECT_FROM_CLOSE 2
|
||||
|
||||
: STARTF_USESHOWWINDOW HEX: 00000001 ; inline
|
||||
: STARTF_USESIZE HEX: 00000002 ; inline
|
||||
: STARTF_USEPOSITION HEX: 00000004 ; inline
|
||||
: STARTF_USECOUNTCHARS HEX: 00000008 ; inline
|
||||
: STARTF_USEFILLATTRIBUTE HEX: 00000010 ; inline
|
||||
: STARTF_RUNFULLSCREEN HEX: 00000020 ; inline
|
||||
: STARTF_FORCEONFEEDBACK HEX: 00000040 ; inline
|
||||
: STARTF_FORCEOFFFEEDBACK HEX: 00000080 ; inline
|
||||
: STARTF_USESTDHANDLES HEX: 00000100 ; inline
|
||||
: STARTF_USEHOTKEY HEX: 00000200 ; inline
|
||||
CONSTANT: STARTF_USESHOWWINDOW HEX: 00000001
|
||||
CONSTANT: STARTF_USESIZE HEX: 00000002
|
||||
CONSTANT: STARTF_USEPOSITION HEX: 00000004
|
||||
CONSTANT: STARTF_USECOUNTCHARS HEX: 00000008
|
||||
CONSTANT: STARTF_USEFILLATTRIBUTE HEX: 00000010
|
||||
CONSTANT: STARTF_RUNFULLSCREEN HEX: 00000020
|
||||
CONSTANT: STARTF_FORCEONFEEDBACK HEX: 00000040
|
||||
CONSTANT: STARTF_FORCEOFFFEEDBACK HEX: 00000080
|
||||
CONSTANT: STARTF_USESTDHANDLES HEX: 00000100
|
||||
CONSTANT: STARTF_USEHOTKEY HEX: 00000200
|
||||
|
||||
: PIPE_ACCESS_INBOUND 1 ; inline
|
||||
: PIPE_ACCESS_OUTBOUND 2 ; inline
|
||||
: PIPE_ACCESS_DUPLEX 3 ; inline
|
||||
CONSTANT: PIPE_ACCESS_INBOUND 1
|
||||
CONSTANT: PIPE_ACCESS_OUTBOUND 2
|
||||
CONSTANT: PIPE_ACCESS_DUPLEX 3
|
||||
|
||||
: PIPE_TYPE_BYTE 0 ; inline
|
||||
: PIPE_TYPE_MESSAGE 4 ; inline
|
||||
CONSTANT: PIPE_TYPE_BYTE 0
|
||||
CONSTANT: PIPE_TYPE_MESSAGE 4
|
||||
|
||||
: PIPE_READMODE_BYTE 0 ; inline
|
||||
: PIPE_READMODE_MESSAGE 2 ; inline
|
||||
CONSTANT: PIPE_READMODE_BYTE 0
|
||||
CONSTANT: PIPE_READMODE_MESSAGE 2
|
||||
|
||||
: PIPE_WAIT 0 ; inline
|
||||
: PIPE_NOWAIT 1 ; inline
|
||||
CONSTANT: PIPE_WAIT 0
|
||||
CONSTANT: PIPE_NOWAIT 1
|
||||
|
||||
: PIPE_UNLIMITED_INSTANCES 255 ; inline
|
||||
CONSTANT: PIPE_UNLIMITED_INSTANCES 255
|
||||
|
||||
LIBRARY: kernel32
|
||||
! FUNCTION: _hread
|
||||
|
@ -641,29 +640,29 @@ ALIAS: CreateNamedPipe CreateNamedPipeW
|
|||
! FUNCTION: CreateNlsSecurityDescriptor
|
||||
FUNCTION: BOOL CreatePipe ( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ) ;
|
||||
|
||||
: DEBUG_PROCESS HEX: 00000001 ;
|
||||
: DEBUG_ONLY_THIS_PROCESS HEX: 00000002 ;
|
||||
: CREATE_SUSPENDED HEX: 00000004 ;
|
||||
: DETACHED_PROCESS HEX: 00000008 ;
|
||||
: CREATE_NEW_CONSOLE HEX: 00000010 ;
|
||||
: NORMAL_PRIORITY_CLASS HEX: 00000020 ;
|
||||
: IDLE_PRIORITY_CLASS HEX: 00000040 ;
|
||||
: HIGH_PRIORITY_CLASS HEX: 00000080 ;
|
||||
: REALTIME_PRIORITY_CLASS HEX: 00000100 ;
|
||||
: CREATE_NEW_PROCESS_GROUP HEX: 00000200 ;
|
||||
: CREATE_UNICODE_ENVIRONMENT HEX: 00000400 ;
|
||||
: CREATE_SEPARATE_WOW_VDM HEX: 00000800 ;
|
||||
: CREATE_SHARED_WOW_VDM HEX: 00001000 ;
|
||||
: CREATE_FORCEDOS HEX: 00002000 ;
|
||||
: BELOW_NORMAL_PRIORITY_CLASS HEX: 00004000 ;
|
||||
: ABOVE_NORMAL_PRIORITY_CLASS HEX: 00008000 ;
|
||||
: CREATE_BREAKAWAY_FROM_JOB HEX: 01000000 ;
|
||||
: CREATE_WITH_USERPROFILE HEX: 02000000 ;
|
||||
: CREATE_DEFAULT_ERROR_MODE HEX: 04000000 ;
|
||||
: CREATE_NO_WINDOW HEX: 08000000 ;
|
||||
: PROFILE_USER HEX: 10000000 ;
|
||||
: PROFILE_KERNEL HEX: 20000000 ;
|
||||
: PROFILE_SERVER HEX: 40000000 ;
|
||||
CONSTANT: DEBUG_PROCESS HEX: 00000001
|
||||
CONSTANT: DEBUG_ONLY_THIS_PROCESS HEX: 00000002
|
||||
CONSTANT: CREATE_SUSPENDED HEX: 00000004
|
||||
CONSTANT: DETACHED_PROCESS HEX: 00000008
|
||||
CONSTANT: CREATE_NEW_CONSOLE HEX: 00000010
|
||||
CONSTANT: NORMAL_PRIORITY_CLASS HEX: 00000020
|
||||
CONSTANT: IDLE_PRIORITY_CLASS HEX: 00000040
|
||||
CONSTANT: HIGH_PRIORITY_CLASS HEX: 00000080
|
||||
CONSTANT: REALTIME_PRIORITY_CLASS HEX: 00000100
|
||||
CONSTANT: CREATE_NEW_PROCESS_GROUP HEX: 00000200
|
||||
CONSTANT: CREATE_UNICODE_ENVIRONMENT HEX: 00000400
|
||||
CONSTANT: CREATE_SEPARATE_WOW_VDM HEX: 00000800
|
||||
CONSTANT: CREATE_SHARED_WOW_VDM HEX: 00001000
|
||||
CONSTANT: CREATE_FORCEDOS HEX: 00002000
|
||||
CONSTANT: BELOW_NORMAL_PRIORITY_CLASS HEX: 00004000
|
||||
CONSTANT: ABOVE_NORMAL_PRIORITY_CLASS HEX: 00008000
|
||||
CONSTANT: CREATE_BREAKAWAY_FROM_JOB HEX: 01000000
|
||||
CONSTANT: CREATE_WITH_USERPROFILE HEX: 02000000
|
||||
CONSTANT: CREATE_DEFAULT_ERROR_MODE HEX: 04000000
|
||||
CONSTANT: CREATE_NO_WINDOW HEX: 08000000
|
||||
CONSTANT: PROFILE_USER HEX: 10000000
|
||||
CONSTANT: PROFILE_KERNEL HEX: 20000000
|
||||
CONSTANT: PROFILE_SERVER HEX: 40000000
|
||||
|
||||
FUNCTION: BOOL CreateProcessW ( LPCTSTR lpApplicationname,
|
||||
LPTSTR lpCommandLine,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,87 +3,87 @@
|
|||
USING: alien alien.c-types alien.strings alien.syntax
|
||||
combinators io.encodings.utf16n io.files io.pathnames kernel
|
||||
windows windows.com windows.com.syntax windows.ole32
|
||||
windows.user32 ;
|
||||
windows.user32 constants alias ;
|
||||
IN: windows.shell32
|
||||
|
||||
: CSIDL_DESKTOP HEX: 00 ; inline
|
||||
: CSIDL_INTERNET HEX: 01 ; inline
|
||||
: CSIDL_PROGRAMS HEX: 02 ; inline
|
||||
: CSIDL_CONTROLS HEX: 03 ; inline
|
||||
: CSIDL_PRINTERS HEX: 04 ; inline
|
||||
: CSIDL_PERSONAL HEX: 05 ; inline
|
||||
: CSIDL_FAVORITES HEX: 06 ; inline
|
||||
: CSIDL_STARTUP HEX: 07 ; inline
|
||||
: CSIDL_RECENT HEX: 08 ; inline
|
||||
: CSIDL_SENDTO HEX: 09 ; inline
|
||||
: CSIDL_BITBUCKET HEX: 0a ; inline
|
||||
: CSIDL_STARTMENU HEX: 0b ; inline
|
||||
: CSIDL_MYDOCUMENTS HEX: 0c ; inline
|
||||
: CSIDL_MYMUSIC HEX: 0d ; inline
|
||||
: CSIDL_MYVIDEO HEX: 0e ; inline
|
||||
: CSIDL_DESKTOPDIRECTORY HEX: 10 ; inline
|
||||
: CSIDL_DRIVES HEX: 11 ; inline
|
||||
: CSIDL_NETWORK HEX: 12 ; inline
|
||||
: CSIDL_NETHOOD HEX: 13 ; inline
|
||||
: CSIDL_FONTS HEX: 14 ; inline
|
||||
: CSIDL_TEMPLATES HEX: 15 ; inline
|
||||
: CSIDL_COMMON_STARTMENU HEX: 16 ; inline
|
||||
: CSIDL_COMMON_PROGRAMS HEX: 17 ; inline
|
||||
: CSIDL_COMMON_STARTUP HEX: 18 ; inline
|
||||
: CSIDL_COMMON_DESKTOPDIRECTORY HEX: 19 ; inline
|
||||
: CSIDL_APPDATA HEX: 1a ; inline
|
||||
: CSIDL_PRINTHOOD HEX: 1b ; inline
|
||||
: CSIDL_LOCAL_APPDATA HEX: 1c ; inline
|
||||
: CSIDL_ALTSTARTUP HEX: 1d ; inline
|
||||
: CSIDL_COMMON_ALTSTARTUP HEX: 1e ; inline
|
||||
: CSIDL_COMMON_FAVORITES HEX: 1f ; inline
|
||||
: CSIDL_INTERNET_CACHE HEX: 20 ; inline
|
||||
: CSIDL_COOKIES HEX: 21 ; inline
|
||||
: CSIDL_HISTORY HEX: 22 ; inline
|
||||
: CSIDL_COMMON_APPDATA HEX: 23 ; inline
|
||||
: CSIDL_WINDOWS HEX: 24 ; inline
|
||||
: CSIDL_SYSTEM HEX: 25 ; inline
|
||||
: CSIDL_PROGRAM_FILES HEX: 26 ; inline
|
||||
: CSIDL_MYPICTURES HEX: 27 ; inline
|
||||
: CSIDL_PROFILE HEX: 28 ; inline
|
||||
: CSIDL_SYSTEMX86 HEX: 29 ; inline
|
||||
: CSIDL_PROGRAM_FILESX86 HEX: 2a ; inline
|
||||
: CSIDL_PROGRAM_FILES_COMMON HEX: 2b ; inline
|
||||
: CSIDL_PROGRAM_FILES_COMMONX86 HEX: 2c ; inline
|
||||
: CSIDL_COMMON_TEMPLATES HEX: 2d ; inline
|
||||
: CSIDL_COMMON_DOCUMENTS HEX: 2e ; inline
|
||||
: CSIDL_COMMON_ADMINTOOLS HEX: 2f ; inline
|
||||
: CSIDL_ADMINTOOLS HEX: 30 ; inline
|
||||
: CSIDL_CONNECTIONS HEX: 31 ; inline
|
||||
: CSIDL_COMMON_MUSIC HEX: 35 ; inline
|
||||
: CSIDL_COMMON_PICTURES HEX: 36 ; inline
|
||||
: CSIDL_COMMON_VIDEO HEX: 37 ; inline
|
||||
: CSIDL_RESOURCES HEX: 38 ; inline
|
||||
: CSIDL_RESOURCES_LOCALIZED HEX: 39 ; inline
|
||||
: CSIDL_COMMON_OEM_LINKS HEX: 3a ; inline
|
||||
: CSIDL_CDBURN_AREA HEX: 3b ; inline
|
||||
: CSIDL_COMPUTERSNEARME HEX: 3d ; inline
|
||||
: CSIDL_PROFILES HEX: 3e ; inline
|
||||
: CSIDL_FOLDER_MASK HEX: ff ; inline
|
||||
: CSIDL_FLAG_PER_USER_INIT HEX: 800 ; inline
|
||||
: CSIDL_FLAG_NO_ALIAS HEX: 1000 ; inline
|
||||
: CSIDL_FLAG_DONT_VERIFY HEX: 4000 ; inline
|
||||
: CSIDL_FLAG_CREATE HEX: 8000 ; inline
|
||||
: CSIDL_FLAG_MASK HEX: ff00 ; inline
|
||||
CONSTANT: CSIDL_DESKTOP HEX: 00
|
||||
CONSTANT: CSIDL_INTERNET HEX: 01
|
||||
CONSTANT: CSIDL_PROGRAMS HEX: 02
|
||||
CONSTANT: CSIDL_CONTROLS HEX: 03
|
||||
CONSTANT: CSIDL_PRINTERS HEX: 04
|
||||
CONSTANT: CSIDL_PERSONAL HEX: 05
|
||||
CONSTANT: CSIDL_FAVORITES HEX: 06
|
||||
CONSTANT: CSIDL_STARTUP HEX: 07
|
||||
CONSTANT: CSIDL_RECENT HEX: 08
|
||||
CONSTANT: CSIDL_SENDTO HEX: 09
|
||||
CONSTANT: CSIDL_BITBUCKET HEX: 0a
|
||||
CONSTANT: CSIDL_STARTMENU HEX: 0b
|
||||
CONSTANT: CSIDL_MYDOCUMENTS HEX: 0c
|
||||
CONSTANT: CSIDL_MYMUSIC HEX: 0d
|
||||
CONSTANT: CSIDL_MYVIDEO HEX: 0e
|
||||
CONSTANT: CSIDL_DESKTOPDIRECTORY HEX: 10
|
||||
CONSTANT: CSIDL_DRIVES HEX: 11
|
||||
CONSTANT: CSIDL_NETWORK HEX: 12
|
||||
CONSTANT: CSIDL_NETHOOD HEX: 13
|
||||
CONSTANT: CSIDL_FONTS HEX: 14
|
||||
CONSTANT: CSIDL_TEMPLATES HEX: 15
|
||||
CONSTANT: CSIDL_COMMON_STARTMENU HEX: 16
|
||||
CONSTANT: CSIDL_COMMON_PROGRAMS HEX: 17
|
||||
CONSTANT: CSIDL_COMMON_STARTUP HEX: 18
|
||||
CONSTANT: CSIDL_COMMON_DESKTOPDIRECTORY HEX: 19
|
||||
CONSTANT: CSIDL_APPDATA HEX: 1a
|
||||
CONSTANT: CSIDL_PRINTHOOD HEX: 1b
|
||||
CONSTANT: CSIDL_LOCAL_APPDATA HEX: 1c
|
||||
CONSTANT: CSIDL_ALTSTARTUP HEX: 1d
|
||||
CONSTANT: CSIDL_COMMON_ALTSTARTUP HEX: 1e
|
||||
CONSTANT: CSIDL_COMMON_FAVORITES HEX: 1f
|
||||
CONSTANT: CSIDL_INTERNET_CACHE HEX: 20
|
||||
CONSTANT: CSIDL_COOKIES HEX: 21
|
||||
CONSTANT: CSIDL_HISTORY HEX: 22
|
||||
CONSTANT: CSIDL_COMMON_APPDATA HEX: 23
|
||||
CONSTANT: CSIDL_WINDOWS HEX: 24
|
||||
CONSTANT: CSIDL_SYSTEM HEX: 25
|
||||
CONSTANT: CSIDL_PROGRAM_FILES HEX: 26
|
||||
CONSTANT: CSIDL_MYPICTURES HEX: 27
|
||||
CONSTANT: CSIDL_PROFILE HEX: 28
|
||||
CONSTANT: CSIDL_SYSTEMX86 HEX: 29
|
||||
CONSTANT: CSIDL_PROGRAM_FILESX86 HEX: 2a
|
||||
CONSTANT: CSIDL_PROGRAM_FILES_COMMON HEX: 2b
|
||||
CONSTANT: CSIDL_PROGRAM_FILES_COMMONX86 HEX: 2c
|
||||
CONSTANT: CSIDL_COMMON_TEMPLATES HEX: 2d
|
||||
CONSTANT: CSIDL_COMMON_DOCUMENTS HEX: 2e
|
||||
CONSTANT: CSIDL_COMMON_ADMINTOOLS HEX: 2f
|
||||
CONSTANT: CSIDL_ADMINTOOLS HEX: 30
|
||||
CONSTANT: CSIDL_CONNECTIONS HEX: 31
|
||||
CONSTANT: CSIDL_COMMON_MUSIC HEX: 35
|
||||
CONSTANT: CSIDL_COMMON_PICTURES HEX: 36
|
||||
CONSTANT: CSIDL_COMMON_VIDEO HEX: 37
|
||||
CONSTANT: CSIDL_RESOURCES HEX: 38
|
||||
CONSTANT: CSIDL_RESOURCES_LOCALIZED HEX: 39
|
||||
CONSTANT: CSIDL_COMMON_OEM_LINKS HEX: 3a
|
||||
CONSTANT: CSIDL_CDBURN_AREA HEX: 3b
|
||||
CONSTANT: CSIDL_COMPUTERSNEARME HEX: 3d
|
||||
CONSTANT: CSIDL_PROFILES HEX: 3e
|
||||
CONSTANT: CSIDL_FOLDER_MASK HEX: ff
|
||||
CONSTANT: CSIDL_FLAG_PER_USER_INIT HEX: 800
|
||||
CONSTANT: CSIDL_FLAG_NO_ALIAS HEX: 1000
|
||||
CONSTANT: CSIDL_FLAG_DONT_VERIFY HEX: 4000
|
||||
CONSTANT: CSIDL_FLAG_CREATE HEX: 8000
|
||||
CONSTANT: CSIDL_FLAG_MASK HEX: ff00
|
||||
|
||||
|
||||
: ERROR_FILE_NOT_FOUND 2 ; inline
|
||||
CONSTANT: ERROR_FILE_NOT_FOUND 2
|
||||
|
||||
: SHGFP_TYPE_CURRENT 0 ; inline
|
||||
: SHGFP_TYPE_DEFAULT 1 ; inline
|
||||
CONSTANT: SHGFP_TYPE_CURRENT 0
|
||||
CONSTANT: SHGFP_TYPE_DEFAULT 1
|
||||
|
||||
LIBRARY: shell32
|
||||
|
||||
FUNCTION: HRESULT SHGetFolderPathW ( HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPTSTR pszPath ) ;
|
||||
: SHGetFolderPath SHGetFolderPathW ; inline
|
||||
ALIAS: SHGetFolderPath SHGetFolderPathW
|
||||
|
||||
FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ) ;
|
||||
: ShellExecute ShellExecuteW ; inline
|
||||
ALIAS: ShellExecute ShellExecuteW
|
||||
|
||||
: open-in-explorer ( dir -- )
|
||||
f "open" rot (normalize-path) f f SW_SHOWNORMAL ShellExecute drop ;
|
||||
|
@ -105,7 +105,7 @@ FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFi
|
|||
: application-data ( -- str )
|
||||
CSIDL_APPDATA shell32-directory ;
|
||||
|
||||
: windows ( -- str )
|
||||
: windows-directory ( -- str )
|
||||
CSIDL_WINDOWS shell32-directory ;
|
||||
|
||||
: programs ( -- str )
|
||||
|
@ -123,50 +123,50 @@ FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFi
|
|||
: program-files-common-x86 ( -- str )
|
||||
CSIDL_PROGRAM_FILES_COMMONX86 shell32-directory ;
|
||||
|
||||
: SHCONTF_FOLDERS 32 ; inline
|
||||
: SHCONTF_NONFOLDERS 64 ; inline
|
||||
: SHCONTF_INCLUDEHIDDEN 128 ; inline
|
||||
: SHCONTF_INIT_ON_FIRST_NEXT 256 ; inline
|
||||
: SHCONTF_NETPRINTERSRCH 512 ; inline
|
||||
: SHCONTF_SHAREABLE 1024 ; inline
|
||||
: SHCONTF_STORAGE 2048 ; inline
|
||||
CONSTANT: SHCONTF_FOLDERS 32
|
||||
CONSTANT: SHCONTF_NONFOLDERS 64
|
||||
CONSTANT: SHCONTF_INCLUDEHIDDEN 128
|
||||
CONSTANT: SHCONTF_INIT_ON_FIRST_NEXT 256
|
||||
CONSTANT: SHCONTF_NETPRINTERSRCH 512
|
||||
CONSTANT: SHCONTF_SHAREABLE 1024
|
||||
CONSTANT: SHCONTF_STORAGE 2048
|
||||
|
||||
TYPEDEF: DWORD SHCONTF
|
||||
|
||||
: SHGDN_NORMAL 0 ; inline
|
||||
: SHGDN_INFOLDER 1 ; inline
|
||||
: SHGDN_FOREDITING HEX: 1000 ; inline
|
||||
: SHGDN_INCLUDE_NONFILESYS HEX: 2000 ; inline
|
||||
: SHGDN_FORADDRESSBAR HEX: 4000 ; inline
|
||||
: SHGDN_FORPARSING HEX: 8000 ; inline
|
||||
CONSTANT: SHGDN_NORMAL 0
|
||||
CONSTANT: SHGDN_INFOLDER 1
|
||||
CONSTANT: SHGDN_FOREDITING HEX: 1000
|
||||
CONSTANT: SHGDN_INCLUDE_NONFILESYS HEX: 2000
|
||||
CONSTANT: SHGDN_FORADDRESSBAR HEX: 4000
|
||||
CONSTANT: SHGDN_FORPARSING HEX: 8000
|
||||
|
||||
TYPEDEF: DWORD SHGDNF
|
||||
|
||||
: SFGAO_CANCOPY DROPEFFECT_COPY ; inline
|
||||
: SFGAO_CANMOVE DROPEFFECT_MOVE ; inline
|
||||
: SFGAO_CANLINK DROPEFFECT_LINK ; inline
|
||||
: SFGAO_CANRENAME HEX: 00000010 ; inline
|
||||
: SFGAO_CANDELETE HEX: 00000020 ; inline
|
||||
: SFGAO_HASPROPSHEET HEX: 00000040 ; inline
|
||||
: SFGAO_DROPTARGET HEX: 00000100 ; inline
|
||||
: SFGAO_CAPABILITYMASK HEX: 00000177 ; inline
|
||||
: SFGAO_LINK HEX: 00010000 ; inline
|
||||
: SFGAO_SHARE HEX: 00020000 ; inline
|
||||
: SFGAO_READONLY HEX: 00040000 ; inline
|
||||
: SFGAO_GHOSTED HEX: 00080000 ; inline
|
||||
: SFGAO_HIDDEN HEX: 00080000 ; inline
|
||||
: SFGAO_DISPLAYATTRMASK HEX: 000F0000 ; inline
|
||||
: SFGAO_FILESYSANCESTOR HEX: 10000000 ; inline
|
||||
: SFGAO_FOLDER HEX: 20000000 ; inline
|
||||
: SFGAO_FILESYSTEM HEX: 40000000 ; inline
|
||||
: SFGAO_HASSUBFOLDER HEX: 80000000 ; inline
|
||||
: SFGAO_CONTENTSMASK HEX: 80000000 ; inline
|
||||
: SFGAO_VALIDATE HEX: 01000000 ; inline
|
||||
: SFGAO_REMOVABLE HEX: 02000000 ; inline
|
||||
: SFGAO_COMPRESSED HEX: 04000000 ; inline
|
||||
: SFGAO_BROWSABLE HEX: 08000000 ; inline
|
||||
: SFGAO_NONENUMERATED HEX: 00100000 ; inline
|
||||
: SFGAO_NEWCONTENT HEX: 00200000 ; inline
|
||||
ALIAS: SFGAO_CANCOPY DROPEFFECT_COPY
|
||||
ALIAS: SFGAO_CANMOVE DROPEFFECT_MOVE
|
||||
ALIAS: SFGAO_CANLINK DROPEFFECT_LINK
|
||||
CONSTANT: SFGAO_CANRENAME HEX: 00000010
|
||||
CONSTANT: SFGAO_CANDELETE HEX: 00000020
|
||||
CONSTANT: SFGAO_HASPROPSHEET HEX: 00000040
|
||||
CONSTANT: SFGAO_DROPTARGET HEX: 00000100
|
||||
CONSTANT: SFGAO_CAPABILITYMASK HEX: 00000177
|
||||
CONSTANT: SFGAO_LINK HEX: 00010000
|
||||
CONSTANT: SFGAO_SHARE HEX: 00020000
|
||||
CONSTANT: SFGAO_READONLY HEX: 00040000
|
||||
CONSTANT: SFGAO_GHOSTED HEX: 00080000
|
||||
CONSTANT: SFGAO_HIDDEN HEX: 00080000
|
||||
CONSTANT: SFGAO_DISPLAYATTRMASK HEX: 000F0000
|
||||
CONSTANT: SFGAO_FILESYSANCESTOR HEX: 10000000
|
||||
CONSTANT: SFGAO_FOLDER HEX: 20000000
|
||||
CONSTANT: SFGAO_FILESYSTEM HEX: 40000000
|
||||
CONSTANT: SFGAO_HASSUBFOLDER HEX: 80000000
|
||||
CONSTANT: SFGAO_CONTENTSMASK HEX: 80000000
|
||||
CONSTANT: SFGAO_VALIDATE HEX: 01000000
|
||||
CONSTANT: SFGAO_REMOVABLE HEX: 02000000
|
||||
CONSTANT: SFGAO_COMPRESSED HEX: 04000000
|
||||
CONSTANT: SFGAO_BROWSABLE HEX: 08000000
|
||||
CONSTANT: SFGAO_NONENUMERATED HEX: 00100000
|
||||
CONSTANT: SFGAO_NEWCONTENT HEX: 00200000
|
||||
|
||||
TYPEDEF: ULONG SFGAOF
|
||||
|
||||
|
@ -223,5 +223,4 @@ COM-INTERFACE: IShellFolder IUnknown {000214E6-0000-0000-C000-000000000046}
|
|||
FUNCTION: HRESULT SHGetDesktopFolder ( IShellFolder** ppshf ) ;
|
||||
|
||||
FUNCTION: UINT DragQueryFileW ( HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch ) ;
|
||||
: DragQueryFile DragQueryFileW ; inline
|
||||
|
||||
ALIAS: DragQueryFile DragQueryFileW
|
||||
|
|
|
@ -22,14 +22,14 @@ TUPLE: x-clipboard atom contents ;
|
|||
"org.factorcode.Factor.SELECTION" x-atom ;
|
||||
|
||||
: convert-selection ( win selection -- )
|
||||
swap >r >r dpy get r> XA_UTF8_STRING selection-property r>
|
||||
swap [ [ dpy get ] dip XA_UTF8_STRING selection-property ] dip
|
||||
CurrentTime XConvertSelection drop ;
|
||||
|
||||
: snarf-property ( prop-return -- string )
|
||||
dup *void* [ *void* ascii alien>string ] [ drop f ] if ;
|
||||
|
||||
: window-property ( win prop delete? -- string )
|
||||
>r dpy get -rot 0 -1 r> AnyPropertyType
|
||||
[ [ dpy get ] 2dip 0 -1 ] dip AnyPropertyType
|
||||
0 <Atom> 0 <int> 0 <ulong> 0 <ulong> f <void*>
|
||||
[ XGetWindowProperty drop ] keep snarf-property ;
|
||||
|
||||
|
@ -58,7 +58,7 @@ TUPLE: x-clipboard atom contents ;
|
|||
dpy get swap
|
||||
[ XSelectionRequestEvent-requestor ] keep
|
||||
[ XSelectionRequestEvent-property ] keep
|
||||
>r "TIMESTAMP" x-atom 32 PropModeReplace r>
|
||||
[ "TIMESTAMP" x-atom 32 PropModeReplace ] dip
|
||||
XSelectionRequestEvent-time <int>
|
||||
1 XChangeProperty drop ;
|
||||
|
||||
|
@ -71,7 +71,7 @@ TUPLE: x-clipboard atom contents ;
|
|||
over XSelectionRequestEvent-selection over set-XSelectionEvent-selection
|
||||
over XSelectionRequestEvent-target over set-XSelectionEvent-target
|
||||
over XSelectionRequestEvent-time over set-XSelectionEvent-time
|
||||
>r dpy get swap XSelectionRequestEvent-requestor 0 0 r>
|
||||
[ dpy get swap XSelectionRequestEvent-requestor 0 0 ] dip
|
||||
XSendEvent drop
|
||||
flush-dpy ;
|
||||
|
||||
|
|
|
@ -36,12 +36,12 @@ GENERIC: selection-request-event ( event window -- )
|
|||
GENERIC: client-event ( event window -- )
|
||||
|
||||
: next-event ( -- event )
|
||||
dpy get "XEvent" <c-object> dup >r XNextEvent drop r> ;
|
||||
dpy get "XEvent" <c-object> [ XNextEvent drop ] keep ;
|
||||
|
||||
: mask-event ( mask -- event )
|
||||
>r dpy get r> "XEvent" <c-object> dup >r XMaskEvent drop r> ;
|
||||
[ dpy get ] dip "XEvent" <c-object> [ XMaskEvent drop ] keep ;
|
||||
|
||||
: events-queued ( mode -- n ) >r dpy get r> XEventsQueued ;
|
||||
: events-queued ( mode -- n ) [ dpy get ] dip XEventsQueued ;
|
||||
|
||||
: wheel? ( event -- ? ) XButtonEvent-button 4 7 between? ;
|
||||
|
||||
|
@ -71,15 +71,15 @@ GENERIC: client-event ( event window -- )
|
|||
} case ;
|
||||
|
||||
: configured-loc ( event -- dim )
|
||||
dup XConfigureEvent-x swap XConfigureEvent-y 2array ;
|
||||
[ XConfigureEvent-x ] [ XConfigureEvent-y ] bi 2array ;
|
||||
|
||||
: configured-dim ( event -- dim )
|
||||
dup XConfigureEvent-width swap XConfigureEvent-height 2array ;
|
||||
[ XConfigureEvent-width ] [ XConfigureEvent-height ] bi 2array ;
|
||||
|
||||
: mouse-event-loc ( event -- loc )
|
||||
dup XButtonEvent-x swap XButtonEvent-y 2array ;
|
||||
[ XButtonEvent-x ] [ XButtonEvent-y ] bi 2array ;
|
||||
|
||||
: close-box? ( event -- ? )
|
||||
dup XClientMessageEvent-message_type "WM_PROTOCOLS" x-atom =
|
||||
swap XClientMessageEvent-data0 "WM_DELETE_WINDOW" x-atom =
|
||||
and ;
|
||||
[ XClientMessageEvent-message_type "WM_PROTOCOLS" x-atom = ]
|
||||
[ XClientMessageEvent-data0 "WM_DELETE_WINDOW" x-atom = ]
|
||||
bi and ;
|
||||
|
|
|
@ -31,7 +31,7 @@ IN: x11.windows
|
|||
"XSetWindowAttributes" <c-object>
|
||||
0 over set-XSetWindowAttributes-background_pixel
|
||||
0 over set-XSetWindowAttributes-border_pixel
|
||||
[ >r create-colormap r> set-XSetWindowAttributes-colormap ] keep
|
||||
[ [ create-colormap ] dip set-XSetWindowAttributes-colormap ] keep
|
||||
event-mask over set-XSetWindowAttributes-event_mask ;
|
||||
|
||||
: set-size-hints ( window -- )
|
||||
|
@ -43,12 +43,13 @@ IN: x11.windows
|
|||
{ 0 0 } = [ drop ] [ set-size-hints ] if ;
|
||||
|
||||
: create-window ( loc dim visinfo -- window )
|
||||
pick >r
|
||||
>r >r >r dpy get root get r> first2 r> { 1 1 } vmax first2 0 r>
|
||||
pick [
|
||||
[ [ [ dpy get root get ] dip first2 ] dip { 1 1 } vmax first2 0 ] dip
|
||||
[ XVisualInfo-depth InputOutput ] keep
|
||||
[ XVisualInfo-visual create-window-mask ] keep
|
||||
window-attributes XCreateWindow
|
||||
dup r> auto-position ;
|
||||
dup
|
||||
] dip auto-position ;
|
||||
|
||||
: glx-window ( loc dim -- window glx )
|
||||
GLX_DOUBLEBUFFER 1array choose-visual
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
USING: kernel arrays alien alien.c-types alien.strings
|
||||
alien.syntax math math.bitwise words sequences namespaces
|
||||
continuations io io.encodings.ascii ;
|
||||
continuations io io.encodings.ascii alias ;
|
||||
IN: x11.xlib
|
||||
|
||||
LIBRARY: xlib
|
||||
|
@ -50,17 +50,17 @@ TYPEDEF: ulong Time
|
|||
TYPEDEF: void* Window**
|
||||
TYPEDEF: void* Atom**
|
||||
|
||||
: <XID> <ulong> ; inline
|
||||
: <Window> <XID> ; inline
|
||||
: <Drawable> <XID> ; inline
|
||||
: <KeySym> <XID> ; inline
|
||||
: <Atom> <ulong> ; inline
|
||||
ALIAS: <XID> <ulong>
|
||||
ALIAS: <Window> <XID>
|
||||
ALIAS: <Drawable> <XID>
|
||||
ALIAS: <KeySym> <XID>
|
||||
ALIAS: <Atom> <ulong>
|
||||
|
||||
: *XID *ulong ; inline
|
||||
: *Window *XID ; inline
|
||||
: *Drawable *XID ; inline
|
||||
: *KeySym *XID ; inline
|
||||
: *Atom *ulong ; inline
|
||||
ALIAS: *XID *ulong
|
||||
ALIAS: *Window *XID
|
||||
ALIAS: *Drawable *XID
|
||||
ALIAS: *KeySym *XID
|
||||
ALIAS: *Atom *ulong
|
||||
!
|
||||
! 2 - Display Functions
|
||||
!
|
||||
|
@ -98,21 +98,21 @@ FUNCTION: int XCloseDisplay ( Display* display ) ;
|
|||
|
||||
! 3.2 - Window Attributes
|
||||
|
||||
: CWBackPixmap 1 0 shift ; inline
|
||||
: CWBackPixel 1 1 shift ; inline
|
||||
: CWBorderPixmap 1 2 shift ; inline
|
||||
: CWBorderPixel 1 3 shift ; inline
|
||||
: CWBitGravity 1 4 shift ; inline
|
||||
: CWWinGravity 1 5 shift ; inline
|
||||
: CWBackingStore 1 6 shift ; inline
|
||||
: CWBackingPlanes 1 7 shift ; inline
|
||||
: CWBackingPixel 1 8 shift ; inline
|
||||
: CWOverrideRedirect 1 9 shift ; inline
|
||||
: CWSaveUnder 1 10 shift ; inline
|
||||
: CWEventMask 1 11 shift ; inline
|
||||
: CWDontPropagate 1 12 shift ; inline
|
||||
: CWColormap 1 13 shift ; inline
|
||||
: CWCursor 1 14 shift ; inline
|
||||
: CWBackPixmap ( -- n ) 0 2^ ; inline
|
||||
: CWBackPixel ( -- n ) 1 2^ ; inline
|
||||
: CWBorderPixmap ( -- n ) 2 2^ ; inline
|
||||
: CWBorderPixel ( -- n ) 3 2^ ; inline
|
||||
: CWBitGravity ( -- n ) 4 2^ ; inline
|
||||
: CWWinGravity ( -- n ) 5 2^ ; inline
|
||||
: CWBackingStore ( -- n ) 6 2^ ; inline
|
||||
: CWBackingPlanes ( -- n ) 7 2^ ; inline
|
||||
: CWBackingPixel ( -- n ) 8 2^ ; inline
|
||||
: CWOverrideRedirect ( -- n ) 9 2^ ; inline
|
||||
: CWSaveUnder ( -- n ) 10 2^ ; inline
|
||||
: CWEventMask ( -- n ) 11 2^ ; inline
|
||||
: CWDontPropagate ( -- n ) 12 2^ ; inline
|
||||
: CWColormap ( -- n ) 13 2^ ; inline
|
||||
: CWCursor ( -- n ) 14 2^ ; inline
|
||||
|
||||
C-STRUCT: XSetWindowAttributes
|
||||
{ "Pixmap" "background_pixmap" }
|
||||
|
@ -161,13 +161,13 @@ FUNCTION: int XMapRaised ( Display* display, Window w ) ;
|
|||
|
||||
! 3.7 - Configuring Windows
|
||||
|
||||
: CWX 1 0 shift ; inline
|
||||
: CWY 1 1 shift ; inline
|
||||
: CWWidth 1 2 shift ; inline
|
||||
: CWHeight 1 3 shift ; inline
|
||||
: CWBorderWidth 1 4 shift ; inline
|
||||
: CWSibling 1 5 shift ; inline
|
||||
: CWStackMode 1 6 shift ; inline
|
||||
: CWX ( -- n ) 0 2^ ; inline
|
||||
: CWY ( -- n ) 1 2^ ; inline
|
||||
: CWWidth ( -- n ) 2 2^ ; inline
|
||||
: CWHeight ( -- n ) 3 2^ ; inline
|
||||
: CWBorderWidth ( -- n ) 4 2^ ; inline
|
||||
: CWSibling ( -- n ) 5 2^ ; inline
|
||||
: CWStackMode ( -- n ) 6 2^ ; inline
|
||||
|
||||
C-STRUCT: XWindowChanges
|
||||
{ "int" "x" }
|
||||
|
@ -312,29 +312,29 @@ FUNCTION: Colormap XCreateColormap ( Display* display, Window w, Visual* visual,
|
|||
! 7 - Graphics Context Functions
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: GCFunction 1 0 shift ; inline
|
||||
: GCPlaneMask 1 1 shift ; inline
|
||||
: GCForeground 1 2 shift ; inline
|
||||
: GCBackground 1 3 shift ; inline
|
||||
: GCLineWidth 1 4 shift ; inline
|
||||
: GCLineStyle 1 5 shift ; inline
|
||||
: GCCapStyle 1 6 shift ; inline
|
||||
: GCJoinStyle 1 7 shift ; inline
|
||||
: GCFillStyle 1 8 shift ; inline
|
||||
: GCFillRule 1 9 shift ; inline
|
||||
: GCTile 1 10 shift ; inline
|
||||
: GCStipple 1 11 shift ; inline
|
||||
: GCTileStipXOrigin 1 12 shift ; inline
|
||||
: GCTileStipYOrigin 1 13 shift ; inline
|
||||
: GCFont 1 14 shift ; inline
|
||||
: GCSubwindowMode 1 15 shift ; inline
|
||||
: GCGraphicsExposures 1 16 shift ; inline
|
||||
: GCClipXOrigin 1 17 shift ; inline
|
||||
: GCClipYOrigin 1 18 shift ; inline
|
||||
: GCClipMask 1 19 shift ; inline
|
||||
: GCDashOffset 1 20 shift ; inline
|
||||
: GCDashList 1 21 shift ; inline
|
||||
: GCArcMode 1 22 shift ; inline
|
||||
: GCFunction ( -- n ) 0 2^ ; inline
|
||||
: GCPlaneMask ( -- n ) 1 2^ ; inline
|
||||
: GCForeground ( -- n ) 2 2^ ; inline
|
||||
: GCBackground ( -- n ) 3 2^ ; inline
|
||||
: GCLineWidth ( -- n ) 4 2^ ; inline
|
||||
: GCLineStyle ( -- n ) 5 2^ ; inline
|
||||
: GCCapStyle ( -- n ) 6 2^ ; inline
|
||||
: GCJoinStyle ( -- n ) 7 2^ ; inline
|
||||
: GCFillStyle ( -- n ) 8 2^ ; inline
|
||||
: GCFillRule ( -- n ) 9 2^ ; inline
|
||||
: GCTile ( -- n ) 10 2^ ; inline
|
||||
: GCStipple ( -- n ) 11 2^ ; inline
|
||||
: GCTileStipXOrigin ( -- n ) 12 2^ ; inline
|
||||
: GCTileStipYOrigin ( -- n ) 13 2^ ; inline
|
||||
: GCFont ( -- n ) 14 2^ ; inline
|
||||
: GCSubwindowMode ( -- n ) 15 2^ ; inline
|
||||
: GCGraphicsExposures ( -- n ) 16 2^ ; inline
|
||||
: GCClipXOrigin ( -- n ) 17 2^ ; inline
|
||||
: GCClipYOrigin ( -- n ) 18 2^ ; inline
|
||||
: GCClipMask ( -- n ) 19 2^ ; inline
|
||||
: GCDashOffset ( -- n ) 20 2^ ; inline
|
||||
: GCDashList ( -- n ) 21 2^ ; inline
|
||||
: GCArcMode ( -- n ) 22 2^ ; inline
|
||||
|
||||
: GXclear HEX: 0 ; inline
|
||||
: GXand HEX: 1 ; inline
|
||||
|
@ -505,32 +505,32 @@ FUNCTION: Status XKillClient ( Display* display, XID resource ) ;
|
|||
|
||||
! 10.3 - Event Masks
|
||||
|
||||
: NoEventMask 0 ; inline
|
||||
: KeyPressMask 1 0 shift ; inline
|
||||
: KeyReleaseMask 1 1 shift ; inline
|
||||
: ButtonPressMask 1 2 shift ; inline
|
||||
: ButtonReleaseMask 1 3 shift ; inline
|
||||
: EnterWindowMask 1 4 shift ; inline
|
||||
: LeaveWindowMask 1 5 shift ; inline
|
||||
: PointerMotionMask 1 6 shift ; inline
|
||||
: PointerMotionHintMask 1 7 shift ; inline
|
||||
: Button1MotionMask 1 8 shift ; inline
|
||||
: Button2MotionMask 1 9 shift ; inline
|
||||
: Button3MotionMask 1 10 shift ; inline
|
||||
: Button4MotionMask 1 11 shift ; inline
|
||||
: Button5MotionMask 1 12 shift ; inline
|
||||
: ButtonMotionMask 1 13 shift ; inline
|
||||
: KeymapStateMask 1 14 shift ; inline
|
||||
: ExposureMask 1 15 shift ; inline
|
||||
: VisibilityChangeMask 1 16 shift ; inline
|
||||
: StructureNotifyMask 1 17 shift ; inline
|
||||
: ResizeRedirectMask 1 18 shift ; inline
|
||||
: SubstructureNotifyMask 1 19 shift ; inline
|
||||
: SubstructureRedirectMask 1 20 shift ; inline
|
||||
: FocusChangeMask 1 21 shift ; inline
|
||||
: PropertyChangeMask 1 22 shift ; inline
|
||||
: ColormapChangeMask 1 23 shift ; inline
|
||||
: OwnerGrabButtonMask 1 24 shift ; inline
|
||||
: NoEventMask ( -- n ) 0 ; inline
|
||||
: KeyPressMask ( -- n ) 0 2^ ; inline
|
||||
: KeyReleaseMask ( -- n ) 1 2^ ; inline
|
||||
: ButtonPressMask ( -- n ) 2 2^ ; inline
|
||||
: ButtonReleaseMask ( -- n ) 3 2^ ; inline
|
||||
: EnterWindowMask ( -- n ) 4 2^ ; inline
|
||||
: LeaveWindowMask ( -- n ) 5 2^ ; inline
|
||||
: PointerMotionMask ( -- n ) 6 2^ ; inline
|
||||
: PointerMotionHintMask ( -- n ) 7 2^ ; inline
|
||||
: Button1MotionMask ( -- n ) 8 2^ ; inline
|
||||
: Button2MotionMask ( -- n ) 9 2^ ; inline
|
||||
: Button3MotionMask ( -- n ) 10 2^ ; inline
|
||||
: Button4MotionMask ( -- n ) 11 2^ ; inline
|
||||
: Button5MotionMask ( -- n ) 12 2^ ; inline
|
||||
: ButtonMotionMask ( -- n ) 13 2^ ; inline
|
||||
: KeymapStateMask ( -- n ) 14 2^ ; inline
|
||||
: ExposureMask ( -- n ) 15 2^ ; inline
|
||||
: VisibilityChangeMask ( -- n ) 16 2^ ; inline
|
||||
: StructureNotifyMask ( -- n ) 17 2^ ; inline
|
||||
: ResizeRedirectMask ( -- n ) 18 2^ ; inline
|
||||
: SubstructureNotifyMask ( -- n ) 19 2^ ; inline
|
||||
: SubstructureRedirectMask ( -- n ) 20 2^ ; inline
|
||||
: FocusChangeMask ( -- n ) 21 2^ ; inline
|
||||
: PropertyChangeMask ( -- n ) 22 2^ ; inline
|
||||
: ColormapChangeMask ( -- n ) 23 2^ ; inline
|
||||
: OwnerGrabButtonMask ( -- n ) 24 2^ ; inline
|
||||
|
||||
: KeyPress 2 ; inline
|
||||
: KeyRelease 3 ; inline
|
||||
|
@ -584,20 +584,20 @@ C-STRUCT: XAnyEvent
|
|||
: Button4 4 ; inline
|
||||
: Button5 5 ; inline
|
||||
|
||||
: Button1Mask 1 8 shift ; inline
|
||||
: Button2Mask 1 9 shift ; inline
|
||||
: Button3Mask 1 10 shift ; inline
|
||||
: Button4Mask 1 11 shift ; inline
|
||||
: Button5Mask 1 12 shift ; inline
|
||||
: Button1Mask ( -- n ) 1 8 shift ; inline
|
||||
: Button2Mask ( -- n ) 1 9 shift ; inline
|
||||
: Button3Mask ( -- n ) 1 10 shift ; inline
|
||||
: Button4Mask ( -- n ) 1 11 shift ; inline
|
||||
: Button5Mask ( -- n ) 1 12 shift ; inline
|
||||
|
||||
: ShiftMask 1 0 shift ; inline
|
||||
: LockMask 1 1 shift ; inline
|
||||
: ControlMask 1 2 shift ; inline
|
||||
: Mod1Mask 1 3 shift ; inline
|
||||
: Mod2Mask 1 4 shift ; inline
|
||||
: Mod3Mask 1 5 shift ; inline
|
||||
: Mod4Mask 1 6 shift ; inline
|
||||
: Mod5Mask 1 7 shift ; inline
|
||||
: ShiftMask ( -- n ) 1 0 shift ; inline
|
||||
: LockMask ( -- n ) 1 1 shift ; inline
|
||||
: ControlMask ( -- n ) 1 2 shift ; inline
|
||||
: Mod1Mask ( -- n ) 1 3 shift ; inline
|
||||
: Mod2Mask ( -- n ) 1 4 shift ; inline
|
||||
: Mod3Mask ( -- n ) 1 5 shift ; inline
|
||||
: Mod4Mask ( -- n ) 1 6 shift ; inline
|
||||
: Mod5Mask ( -- n ) 1 7 shift ; inline
|
||||
|
||||
C-STRUCT: XButtonEvent
|
||||
{ "int" "type" }
|
||||
|
@ -1321,15 +1321,15 @@ FUNCTION: int XBell ( Display* display, int percent ) ;
|
|||
|
||||
! !!! INPUT METHODS
|
||||
|
||||
: XIMPreeditArea HEX: 0001 ;
|
||||
: XIMPreeditCallbacks HEX: 0002 ;
|
||||
: XIMPreeditPosition HEX: 0004 ;
|
||||
: XIMPreeditNothing HEX: 0008 ;
|
||||
: XIMPreeditNone HEX: 0010 ;
|
||||
: XIMStatusArea HEX: 0100 ;
|
||||
: XIMStatusCallbacks HEX: 0200 ;
|
||||
: XIMStatusNothing HEX: 0400 ;
|
||||
: XIMStatusNone HEX: 0800 ;
|
||||
: 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
|
||||
|
||||
: XNVaNestedList "XNVaNestedList" ;
|
||||
: XNQueryInputStyle "queryInputStyle" ;
|
||||
|
|
|
@ -112,7 +112,7 @@ HELP: name
|
|||
{ $class-description "represents an XML name, with the fields space (a string representing the namespace, as written in the document, tag (a string of the actual name of the tag) and url (a string of the URL that the namespace points to)" }
|
||||
{ $see-also <name> tag } ;
|
||||
|
||||
HELP: <name> ( space tag url -- name )
|
||||
HELP: <name>
|
||||
{ $values { "space" "a string" } { "tag" "a string" } { "url" "a string" }
|
||||
{ "name" "an XML tag name" } }
|
||||
{ $description "creates a name tuple with the name-space space and the tag-name tag and the tag-url url." }
|
||||
|
@ -143,7 +143,7 @@ HELP: prolog
|
|||
{ $class-description "represents an XML prolog, with the tuple fields version (containing \"1.0\" or \"1.1\"), encoding (a string representing the encoding type), and standalone (t or f, whether the document is standalone without external entities)" }
|
||||
{ $see-also <prolog> xml } ;
|
||||
|
||||
HELP: <prolog> ( version encoding standalone -- prolog )
|
||||
HELP: <prolog>
|
||||
{ $values { "version" "a string, 1.0 or 1.1" }
|
||||
{ "encoding" "a string" } { "standalone" "a boolean" } { "prolog" "an XML prolog" } }
|
||||
{ $description "creates an XML prolog tuple" }
|
||||
|
@ -153,7 +153,7 @@ HELP: comment
|
|||
{ $class-description "represents a comment in XML. Has one slot, text, which contains the string of the comment" }
|
||||
{ $see-also <comment> } ;
|
||||
|
||||
HELP: <comment> ( text -- comment )
|
||||
HELP: <comment>
|
||||
{ $values { "text" "a string" } { "comment" "a comment" } }
|
||||
{ $description "creates an XML comment tuple" }
|
||||
{ $see-also comment } ;
|
||||
|
@ -162,7 +162,7 @@ HELP: instruction
|
|||
{ $class-description "represents an XML instruction, such as <?xsl stylesheet='foo.xml'?>. Contains one slot, text, which contains the string between the question marks." }
|
||||
{ $see-also <instruction> } ;
|
||||
|
||||
HELP: <instruction> ( text -- instruction )
|
||||
HELP: <instruction>
|
||||
{ $values { "text" "a string" } { "instruction" "an XML instruction" } }
|
||||
{ $description "creates an XML parsing instruction, such as <?xsl stylesheet='foo.xml'?>." }
|
||||
{ $see-also instruction } ;
|
||||
|
|
|
@ -2,7 +2,7 @@ USING: accessors sequences assocs kernel quotations namespaces
|
|||
xml.data xml.utilities combinators macros parser lexer words fry ;
|
||||
IN: xmode.utilities
|
||||
|
||||
: implies [ not ] dip or ; inline
|
||||
: implies ( x y -- z ) [ not ] dip or ; inline
|
||||
|
||||
: child-tags ( tag -- seq ) children>> [ tag? ] filter ;
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ M: assoc assoc-clone-like ( assoc exemplar -- newassoc )
|
|||
] if ; inline recursive
|
||||
|
||||
: assoc-stack ( key seq -- value )
|
||||
dup length 1- swap (assoc-stack) ; flushable
|
||||
[ length 1- ] keep (assoc-stack) ; flushable
|
||||
|
||||
: assoc-subset? ( assoc1 assoc2 -- ? )
|
||||
[ swapd at* [ = ] [ 2drop f ] if ] curry assoc-all? ;
|
||||
|
@ -122,14 +122,14 @@ M: assoc assoc-clone-like ( assoc exemplar -- newassoc )
|
|||
: remove-all ( assoc seq -- subseq )
|
||||
swap [ key? not ] curry filter ;
|
||||
|
||||
: (substitute)
|
||||
: substituter ( assoc -- quot )
|
||||
[ dupd at* [ nip ] [ drop ] if ] curry ; inline
|
||||
|
||||
: substitute-here ( seq assoc -- )
|
||||
(substitute) change-each ;
|
||||
substituter change-each ;
|
||||
|
||||
: substitute ( seq assoc -- newseq )
|
||||
(substitute) map ;
|
||||
substituter map ;
|
||||
|
||||
: cache ( key assoc quot -- value )
|
||||
2over at* [
|
||||
|
|
|
@ -287,11 +287,11 @@ tuple
|
|||
|
||||
"((empty))" "hashtables.private" create
|
||||
"tombstone" "hashtables.private" lookup f
|
||||
2array >tuple 1quotation define-inline
|
||||
2array >tuple 1quotation (( -- value )) define-inline
|
||||
|
||||
"((tombstone))" "hashtables.private" create
|
||||
"tombstone" "hashtables.private" lookup t
|
||||
2array >tuple 1quotation define-inline
|
||||
2array >tuple 1quotation (( -- value )) define-inline
|
||||
|
||||
! Some tuple classes
|
||||
"curry" "kernel" create
|
||||
|
|
|
@ -24,9 +24,11 @@ SINGLETON: crc32
|
|||
|
||||
INSTANCE: crc32 checksum
|
||||
|
||||
: init-crc32 drop [ HEX: ffffffff dup ] dip ; inline
|
||||
: init-crc32 ( input checksum -- x y input )
|
||||
drop [ HEX: ffffffff dup ] dip ; inline
|
||||
|
||||
: finish-crc32 bitxor 4 >be ; inline
|
||||
: finish-crc32 ( x y -- bytes )
|
||||
bitxor 4 >be ; inline
|
||||
|
||||
M: crc32 checksum-bytes
|
||||
init-crc32
|
||||
|
|
|
@ -290,6 +290,12 @@ M: tuple-class (define-tuple-class)
|
|||
tri* define-declared
|
||||
] 3tri ;
|
||||
|
||||
: boa-effect ( class -- effect )
|
||||
[ all-slots [ name>> ] map ] [ name>> 1array ] bi <effect> ;
|
||||
|
||||
: define-boa-word ( word class -- )
|
||||
[ [ boa ] curry ] [ boa-effect ] bi define-inline ;
|
||||
|
||||
M: tuple-class reset-class
|
||||
[
|
||||
dup "slots" word-prop [
|
||||
|
|
|
@ -33,7 +33,7 @@ ERROR: no-method object generic ;
|
|||
] change-at ;
|
||||
|
||||
: flatten-method ( class method assoc -- )
|
||||
[ dup flatten-class keys swap ] 2dip [
|
||||
[ [ flatten-class keys ] keep ] 2dip [
|
||||
[ spin ] dip push-method
|
||||
] 3curry each ;
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ TUPLE: hashtable
|
|||
[ deleted>> 10 fixnum*fast ] [ count>> ] bi fixnum> ; inline
|
||||
|
||||
: grow-hash ( hash -- )
|
||||
[ dup >alist swap assoc-size 1+ ] keep
|
||||
[ [ >alist ] [ assoc-size 1+ ] bi ] keep
|
||||
[ reset-hash ] keep
|
||||
swap (rehash) ; inline
|
||||
|
||||
|
|
|
@ -32,9 +32,9 @@ M: object <decoder> f decoder boa ;
|
|||
|
||||
<PRIVATE
|
||||
|
||||
: cr+ t >>cr drop ; inline
|
||||
: cr+ ( stream -- ) t >>cr drop ; inline
|
||||
|
||||
: cr- f >>cr drop ; inline
|
||||
: cr- ( stream -- ) f >>cr drop ; inline
|
||||
|
||||
: >decoder< ( decoder -- stream encoding )
|
||||
[ stream>> ] [ code>> ] bi ; inline
|
||||
|
|
|
@ -57,8 +57,8 @@ HELP: normalize-path
|
|||
{ $values { "str" "a pathname string" } { "newstr" "a new pathname string" } }
|
||||
{ $description "Called by words such as " { $link <file-reader> } " and " { $link <file-writer> } " to prepare a pathname before passing it to underlying code." } ;
|
||||
|
||||
HELP: <pathname> ( str -- pathname )
|
||||
{ $values { "str" "a pathname string" } { "pathname" pathname } }
|
||||
HELP: <pathname>
|
||||
{ $values { "string" "a pathname string" } { "pathname" pathname } }
|
||||
{ $description "Creates a new " { $link pathname } "." } ;
|
||||
|
||||
HELP: home
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue