]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 16 Dec 2008 15:16:38 +0000 (07:16 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 16 Dec 2008 15:16:38 +0000 (07:16 -0800)
222 files changed:
basis/alias/alias.factor
basis/alien/c-types/c-types.factor
basis/alien/structs/fields/fields.factor
basis/bit-arrays/bit-arrays.factor
basis/bootstrap/image/image.factor
basis/calendar/calendar.factor
basis/channels/remote/remote-docs.factor
basis/checksums/openssl/openssl-docs.factor
basis/cocoa/windows/windows.factor
basis/columns/columns-docs.factor
basis/compiler/cfg/alias-analysis/alias-analysis.factor
basis/compiler/cfg/hats/hats.factor
basis/compiler/cfg/instructions/syntax/syntax.factor
basis/compiler/cfg/linearization/linearization.factor
basis/compiler/codegen/codegen.factor
basis/concurrency/combinators/combinators.factor [changed mode: 0644->0755]
basis/constants/constants.factor [new file with mode: 0644]
basis/cpu/ppc/assembler/assembler.factor
basis/cpu/ppc/assembler/backend/backend.factor
basis/cpu/ppc/ppc.factor
basis/cpu/x86/64/64.factor
basis/cpu/x86/bootstrap.factor
basis/csv/csv.factor
basis/db/types/types-docs.factor
basis/editors/editpadlite/editpadlite.factor
basis/editors/editpadpro/editpadpro.factor
basis/editors/editplus/editplus.factor
basis/editors/emeditor/emeditor.factor
basis/editors/etexteditor/etexteditor.factor
basis/editors/gvim/windows/windows.factor
basis/editors/notepad2/notepad2.factor
basis/editors/notepadpp/notepadpp.factor
basis/editors/scite/scite.factor
basis/editors/ted-notepad/ted-notepad.factor
basis/editors/textpad/authors.txt [new file with mode: 0644]
basis/editors/textpad/summary.txt [new file with mode: 0644]
basis/editors/textpad/tags.txt [new file with mode: 0644]
basis/editors/textpad/textpad.factor [new file with mode: 0644]
basis/editors/ultraedit/ultraedit.factor
basis/editors/vim/vim-docs.factor
basis/editors/wordpad/wordpad.factor
basis/ftp/server/server.factor
basis/furnace/redirection/redirection-docs.factor
basis/grouping/grouping.factor
basis/heaps/heaps.factor
basis/help/lint/lint.factor
basis/html/templates/chloe/chloe-docs.factor
basis/html/templates/fhtml/fhtml-docs.factor
basis/http/server/server-docs.factor
basis/io/backend/windows/nt/nt.factor
basis/io/directories/search/search.factor
basis/io/directories/search/windows/windows.factor
basis/io/directories/unix/tags.txt [new file with mode: 0644]
basis/io/files/info/unix/tags.txt [new file with mode: 0644]
basis/io/files/links/unix/tags.txt [new file with mode: 0644]
basis/io/files/unix/unix.factor
basis/io/files/windows/nt/nt-tests.factor
basis/io/files/windows/nt/nt.factor
basis/io/launcher/windows/nt/nt-tests.factor
basis/io/sockets/secure/secure-docs.factor
basis/io/streams/duplex/duplex-docs.factor
basis/io/styles/styles-docs.factor
basis/locals/backend/backend.factor
basis/math/bitwise/bitwise.factor [changed mode: 0644->0755]
basis/math/functions/functions.factor
basis/math/geometry/rect/rect-docs.factor
basis/math/intervals/intervals-docs.factor
basis/math/intervals/intervals.factor
basis/math/quaternions/quaternions.factor
basis/math/ranges/ranges.factor
basis/mirrors/mirrors-docs.factor
basis/multiline/multiline.factor
basis/nibble-arrays/nibble-arrays.factor
basis/opengl/gl/gl.factor
basis/openssl/libssl/libssl.factor
basis/persistent/vectors/vectors.factor
basis/refs/refs.factor
basis/search-deques/search-deques-docs.factor
basis/sequences/next/next.factor
basis/smtp/smtp-docs.factor
basis/specialized-vectors/functor/functor.factor
basis/stack-checker/backend/backend.factor
basis/tools/disassembler/udis/udis.factor
basis/tools/files/windows/windows.factor
basis/ui/freetype/freetype.factor
basis/ui/gadgets/grid-lines/grid-lines.factor
basis/ui/gadgets/panes/panes-docs.factor
basis/unix/bsd/bsd.factor
basis/unix/bsd/freebsd/freebsd.factor
basis/unix/bsd/macosx/macosx.factor
basis/unix/bsd/netbsd/netbsd.factor
basis/unix/bsd/openbsd/openbsd.factor
basis/unix/getfsstat/freebsd/freebsd.factor
basis/unix/getfsstat/macosx/macosx.factor
basis/unix/getfsstat/netbsd/netbsd.factor
basis/unix/getfsstat/openbsd/openbsd.factor
basis/unix/kqueue/freebsd/freebsd.factor
basis/unix/kqueue/kqueue.factor
basis/unix/kqueue/macosx/macosx.factor
basis/unix/kqueue/netbsd/netbsd.factor
basis/unix/kqueue/openbsd/openbsd.factor
basis/unix/linux/epoll/epoll.factor
basis/unix/linux/inotify/inotify.factor
basis/unix/linux/linux.factor
basis/unix/process/process.factor
basis/unix/solaris/solaris.factor
basis/unix/stat/linux/32/32.factor
basis/unix/stat/linux/64/64.factor
basis/unix/stat/netbsd/32/32.factor
basis/unix/stat/netbsd/64/64.factor
basis/unix/stat/stat.factor
basis/unix/statfs/freebsd/freebsd.factor
basis/unix/statfs/macosx/macosx.factor
basis/unix/statfs/openbsd/openbsd.factor
basis/unix/statvfs/freebsd/freebsd.factor
basis/unix/statvfs/linux/linux.factor
basis/unix/statvfs/macosx/macosx.factor
basis/unix/statvfs/netbsd/netbsd.factor
basis/unix/statvfs/openbsd/openbsd.factor
basis/unix/unix.factor
basis/unix/utmpx/utmpx.factor
basis/vlists/vlists.factor
basis/windows/advapi32/advapi32.factor
basis/windows/dinput/dinput.factor [changed mode: 0644->0755]
basis/windows/errors/errors.factor
basis/windows/gdi32/gdi32.factor
basis/windows/kernel32/kernel32.factor [changed mode: 0644->0755]
basis/windows/messages/messages.factor [changed mode: 0644->0755]
basis/windows/ole32/ole32.factor
basis/windows/shell32/shell32.factor
basis/windows/user32/user32.factor
basis/windows/winsock/winsock.factor
basis/x11/clipboard/clipboard.factor
basis/x11/events/events.factor
basis/x11/windows/windows.factor
basis/x11/xlib/xlib.factor
basis/xml-rpc/xml-rpc-docs.factor
basis/xml/xml-docs.factor
basis/xmode/utilities/utilities.factor
core/assocs/assocs.factor
core/bootstrap/primitives.factor
core/checksums/crc32/crc32.factor
core/classes/tuple/tuple.factor
core/continuations/continuations-docs.factor
core/generic/standard/standard.factor
core/hashtables/hashtables.factor
core/io/encodings/encodings.factor
core/io/pathnames/pathnames-docs.factor
core/io/streams/c/c-docs.factor
core/layouts/layouts.factor
core/math/math-docs.factor
core/math/math.factor [changed mode: 0644->0755]
core/quotations/quotations.factor
core/sequences/sequences-docs.factor
core/sequences/sequences.factor
core/slots/slots.factor
core/sorting/sorting.factor
core/strings/strings.factor
core/syntax/syntax.factor
core/syntax/tags.txt [deleted file]
core/words/words-docs.factor
core/words/words.factor
extra/assoc-heaps/assoc-heaps-docs.factor
extra/benchmark/mandel/colors/colors.factor
extra/benchmark/mandel/mandel.factor
extra/benchmark/nbody/nbody.factor
extra/bubble-chamber/bubble-chamber.factor
extra/bubble-chamber/hadron-chamber/hadron-chamber.factor [new file with mode: 0644]
extra/bubble-chamber/hadron-chamber/tags.txt [new file with mode: 0644]
extra/bubble-chamber/large/large.factor [new file with mode: 0644]
extra/bubble-chamber/large/tags.txt [new file with mode: 0644]
extra/bubble-chamber/medium/medium.factor [new file with mode: 0644]
extra/bubble-chamber/medium/tags.txt [new file with mode: 0644]
extra/bubble-chamber/original/original.factor [new file with mode: 0644]
extra/bubble-chamber/original/tags.txt [new file with mode: 0644]
extra/bubble-chamber/quark-chamber/quark-chamber.factor [new file with mode: 0644]
extra/bubble-chamber/quark-chamber/tags.txt [new file with mode: 0644]
extra/bubble-chamber/small/small.factor [new file with mode: 0644]
extra/bubble-chamber/small/tags.txt [new file with mode: 0644]
extra/bubble-chamber/ten-hadrons/tags.txt [new file with mode: 0644]
extra/bubble-chamber/ten-hadrons/ten-hadrons.factor [new file with mode: 0644]
extra/formatting/formatting-docs.factor
extra/formatting/formatting.factor
extra/fuel/fuel.factor
extra/game-input/backend/authors.txt [deleted file]
extra/game-input/backend/backend.factor [deleted file]
extra/game-input/backend/dinput/authors.txt [deleted file]
extra/game-input/backend/dinput/dinput.factor [deleted file]
extra/game-input/backend/dinput/keys-array/keys-array.factor [deleted file]
extra/game-input/backend/dinput/summary.txt [deleted file]
extra/game-input/backend/dinput/tags.txt [deleted file]
extra/game-input/backend/iokit/authors.txt [deleted file]
extra/game-input/backend/iokit/iokit.factor [deleted file]
extra/game-input/backend/iokit/summary.txt [deleted file]
extra/game-input/backend/iokit/tags.txt [deleted file]
extra/game-input/backend/summary.txt [deleted file]
extra/game-input/backend/tags.txt [deleted file]
extra/game-input/dinput/authors.txt [new file with mode: 0755]
extra/game-input/dinput/dinput.factor [new file with mode: 0755]
extra/game-input/dinput/keys-array/keys-array.factor [new file with mode: 0755]
extra/game-input/dinput/summary.txt [new file with mode: 0755]
extra/game-input/dinput/tags.txt [new file with mode: 0755]
extra/game-input/game-input.factor
extra/game-input/iokit/authors.txt [new file with mode: 0644]
extra/game-input/iokit/iokit.factor [new file with mode: 0755]
extra/game-input/iokit/summary.txt [new file with mode: 0644]
extra/game-input/iokit/tags.txt [new file with mode: 0755]
extra/graphics/bitmap/bitmap.factor
extra/io/serial/serial.factor
extra/iokit/hid/hid.factor
extra/math/text/english/english.factor
extra/math/trig/trig.factor
extra/opengl/demo-support/demo-support.factor
extra/project-euler/215/215.factor
extra/tetris/tetris.factor
misc/fuel/README
misc/fuel/fuel-completion.el
misc/fuel/fuel-listener.el
misc/fuel/fuel-syntax.el
unfinished/benchmark/richards/richards.factor
vm/cpu-ppc.S
vm/os-windows.h

index 4de4d833fa223368c8b57e9383f59145fb309176..79914527ff7f7d4e37ccd09a349dd38b20364a5b 100644 (file)
@@ -1,18 +1,19 @@
 ! Copyright (C) 2008 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: accessors words quotations kernel effects sequences parser ;\r
+USING: accessors words quotations kernel effects sequences\r
+parser definitions ;\r
 IN: alias\r
 \r
 PREDICATE: alias < word "alias" word-prop ;\r
 \r
+: define-alias ( new old -- )\r
+    [ [ 1quotation ] [ stack-effect ] bi define-inline ]\r
+    [ drop t "alias" set-word-prop ] 2bi ;\r
+\r
+: ALIAS: CREATE-WORD scan-word define-alias ; parsing\r
+\r
 M: alias reset-word\r
     [ call-next-method ] [ f "alias" set-word-prop ] bi ;\r
 \r
 M: alias stack-effect\r
     def>> first stack-effect ;\r
-\r
-: define-alias ( new old -- )\r
-    [ 1quotation define-inline ]\r
-    [ drop t "alias" set-word-prop ] 2bi ;\r
-\r
-: ALIAS: CREATE-WORD scan-word define-alias ; parsing\r
index ae148e3ac06f6263c204934bc5b21dc30fdd793f..d1354cb04e03f584263c69250a494b1047321b54 100644 (file)
@@ -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 ]
index abce91f56f45ecc86705f76b054beb77394596a0..f5537fa23994d2320f98af4f5859d00845191231 100644 (file)
@@ -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 ;
index d407f0b84d08583d2a83a5c1663fa9d2e6fd7925..66c786f6bb11de62705847b6b926b7c2556c44af 100644 (file)
@@ -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>>
index d9ecdf22eb0c0dd105649a3fad1aaab225574160..bbd7df91089d858c2fa98c661f516164f876cae5 100644 (file)
@@ -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 ;
 
index 793c771b64a1eaab9090c5c50939e0a997e0e33e..522e0c52f34e11b3dd0574aa0fb7b55569f7b23d 100644 (file)
@@ -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>
 
index 862084e1d9e4a856f0f04102d0b7e894fc971aeb..309f764d2da6f1e6a3deb4baef1901fc0932b2ac 100644 (file)
@@ -6,6 +6,7 @@ IN: channels.remote
 HELP: <remote-channel>
 { $values { "node" "a node object" }
           { "id" "the id of the published channel on the node" } 
+          { "remote-channel" remote-channel }
 }
 { $description "Create a remote channel that acts as a proxy for a "
 "channel on another node. The remote node's channel must have been "
index fd067997a78c082b67747e869651025b3f8549cc..750e05f3c89bea6b2d61366189bb119f3044fcb5 100644 (file)
@@ -4,8 +4,8 @@ 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 )
-{ $values { "name" "an EVP message digest name" } { "checksum" openssl-checksum } }
+HELP: <openssl-checksum>
+{ $values { "name" "an EVP message digest name" } { "openssl-checksum" openssl-checksum } }
 { $description "Creates a new OpenSSL checksum object." } ;
 
 HELP: openssl-md5
index 3a53a1cc3cfde331251e64bb92cb6cc04052380d..51f692d02d6658e7d8b2f60f77108246345357e6 100644 (file)
@@ -14,7 +14,7 @@ IN: cocoa.windows
 : NSBackingStoreNonretained 1 ; inline
 : NSBackingStoreBuffered    2 ; inline
 
-: standard-window-type
+: standard-window-type ( -- n )
     {
         NSTitledWindowMask
         NSClosableWindowMask
index 27dc1608127e35241dc034124024b8038b40eaca..1dd9257281d6ff66e29b5513d3c89ab0a2bba43a 100644 (file)
@@ -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
index 90227bb5dae9ffd79c26355f18cfa3f639b7396f..86bd388d8dadc64338f60e41e1c88a5fc5b0cfe2 100644 (file)
@@ -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
index c0d5bf79a6f7a24b993d546f91338f47c2c18666..817c0f4680ff8f7d7e4a0ceec9c3fa7ad21c96f4 100644 (file)
@@ -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
index 5a5df881124d52f4b7db6429bca40da70b11b85a..30d062d4cce1a8795f3c181ba22a7786ec796a8b 100644 (file)
@@ -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
index 7433df9617cbab44cbfe28c660f25f457e17c9df..584c4cd6629cbe15fc64d7147188584c4c3bcf87 100644 (file)
@@ -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
 
index 9f134c02d7f0a0112d246993964f36becbb2d7cb..0dc5a855e35e37afd23ec0f5a70733be6df90f6f 100644 (file)
@@ -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 ;
old mode 100644 (file)
new mode 100755 (executable)
index 932605f..3d18b9e
@@ -28,7 +28,8 @@ PRIVATE>
 \r
 : [future] ( quot -- quot' ) '[ _ curry future ] ; inline\r
 \r
-: future-values dup [ ?future ] change-each ; inline\r
+: future-values ( futures -- futures )\r
+    dup [ ?future ] change-each ; inline\r
 \r
 PRIVATE>\r
 \r
diff --git a/basis/constants/constants.factor b/basis/constants/constants.factor
new file mode 100644 (file)
index 0000000..bd2b3f1
--- /dev/null
@@ -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
index f94cc00abc2857d409125b012658772cf1332d78..0bb0d70ee077bef4a34992164760a5cface81da9 100644 (file)
@@ -189,21 +189,21 @@ 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 ;
+: LOAD32 ( n r -- ) [ w>h/h ] dip tuck LIS dup rot ORI ;
 : immediate? ( n -- ? ) HEX: -8000 HEX: 7fff between? ;
 : LOAD ( n r -- ) over immediate? [ LI ] [ LOAD32 ] if ;
index 881b094ca229e9fdd32d194e449de3d34e351d98..a2c3a6c8d519723aa81697732ac8a1070247edef 100644 (file)
@@ -79,8 +79,8 @@ M: label (B) 0 -rot (B) rc-relative-ppc-3 label-fixup ;
 
 GENERIC: BC ( a b c -- )
 M: integer BC 0 0 16 b-insn ;
-M: word BC >r 0 BC r> rc-relative-ppc-2 rel-word ;
-M: label BC >r 0 BC r> rc-relative-ppc-2 label-fixup ;
+M: word BC [ 0 BC ] dip rc-relative-ppc-2 rel-word ;
+M: label BC [ 0 BC ] dip rc-relative-ppc-2 label-fixup ;
 
 : CREATE-B ( -- word ) scan "B" prepend create-in ;
 
index c555c4b8090ba60779b5e0f097d54e5ce8b2a876..232608e4ef89b8c776fc9b775e8a1c85498fde43 100644 (file)
@@ -467,19 +467,21 @@ M: ppc %gc
 M: ppc %prologue ( n -- )
     0 11 LOAD32 rc-absolute-ppc-2/2 rel-this
     0 MFLR
-    1 1 pick neg ADDI
-    11 1 pick xt-save STW
-    dup 11 LI
-    11 1 pick next-save STW
-    0 1 rot lr-save + STW ;
+    {
+        [ [ 1 1 ] dip neg ADDI ]
+        [ [ 11 1 ] dip xt-save STW ]
+        [ 11 LI ]
+        [ [ 11 1 ] dip next-save STW ]
+        [ [ 0 1 ] dip lr-save + STW ]
+    } cleave ;
 
 M: ppc %epilogue ( n -- )
     #! At the end of each word that calls a subroutine, we store
     #! the previous link register value in r0 by popping it off
     #! the stack, set the link register to the contents of r0,
     #! and jump to the link register.
-    0 1 pick lr-save + LWZ
-    1 1 rot ADDI
+    [ [ 0 1 ] dip lr-save + LWZ ]
+    [ [ 1 1 ] dip ADDI ] bi
     0 MTLR ;
 
 :: (%boolean) ( dst temp word -- )
@@ -541,17 +543,17 @@ GENERIC: STF ( src dst off reg-class -- )
 M: single-float-regs STF drop STFS ;
 M: double-float-regs STF drop STFD ;
 
-M: float-regs %save-param-reg >r 1 rot local@ r> STF ;
+M: float-regs %save-param-reg [ 1 rot local@ ] dip STF ;
 
 GENERIC: LF ( dst src off reg-class -- )
 
 M: single-float-regs LF drop LFS ;
 M: double-float-regs LF drop LFD ;
 
-M: float-regs %load-param-reg >r 1 rot local@ r> LF ;
+M: float-regs %load-param-reg [ 1 rot local@ ] dip LF ;
 
 M: stack-params %load-param-reg ( stack reg reg-class -- )
-    drop >r 0 1 rot local@ LWZ 0 1 r> param@ STW ;
+    drop [ 0 1 rot local@ LWZ 0 1 ] dip param@ STW ;
 
 : next-param@ ( n -- x ) param@ stack-frame get total-size>> + ;
 
@@ -559,8 +561,8 @@ M: stack-params %save-param-reg ( stack reg reg-class -- )
     #! Funky. Read the parameter from the caller's stack frame.
     #! This word is used in callbacks
     drop
-    0 1 rot next-param@ LWZ
-    0 1 rot local@ STW ;
+    [ 0 1 ] dip next-param@ LWZ
+    [ 0 1 ] dip local@ STW ;
 
 M: ppc %prepare-unbox ( -- )
     ! First parameter is top of stack
@@ -580,14 +582,14 @@ M: ppc %unbox-long-long ( n func -- )
     f %alien-invoke
     ! Store the return value on the C stack
     [
-        3 1 pick local@ STW
-        4 1 rot cell + local@ STW
+        [ [ 3 1 ] dip local@ STW ]
+        [ [ 4 1 ] dip cell + local@ STW ] bi
     ] when* ;
 
 M: ppc %unbox-large-struct ( n c-type -- )
     ! Value must be in r3
     ! Compute destination address and load struct size
-    [ 4 1 rot local@ ADDI ] [ heap-size 5 LI ] bi*
+    [ [ 4 1 ] dip local@ ADDI ] [ heap-size 5 LI ] bi*
     ! Call the function
     "to_value_struct" f %alien-invoke ;
 
@@ -595,15 +597,16 @@ M: ppc %box ( n reg-class func -- )
     ! If the source is a stack location, load it into freg #0.
     ! If the source is f, then we assume the value is already in
     ! freg #0.
-    >r
-    over [ 0 over param-reg swap %load-param-reg ] [ 2drop ] if
-    r> f %alien-invoke ;
+    [ over [ 0 over param-reg swap %load-param-reg ] [ 2drop ] if ] dip
+    f %alien-invoke ;
 
 M: ppc %box-long-long ( n func -- )
-    >r [
-        3 1 pick local@ LWZ
-        4 1 rot cell + local@ LWZ
-    ] when* r> f %alien-invoke ;
+    [
+        [
+            [ [ 3 1 ] dip local@ LWZ ]
+            [ [ 4 1 ] dip cell + local@ LWZ ] bi
+        ] when*
+    ] dip f %alien-invoke ;
 
 : struct-return@ ( n -- n )
     [ stack-frame get params>> ] unless* local@ ;
@@ -616,7 +619,7 @@ M: ppc %prepare-box-struct ( -- )
 M: ppc %box-large-struct ( n c-type -- )
     ! If n = f, then we're boxing a returned struct
     ! Compute destination address and load struct size
-    [ 3 1 rot struct-return@ ADDI ] [ heap-size 4 LI ] bi*
+    [ [ 3 1 ] dip struct-return@ ADDI ] [ heap-size 4 LI ] bi*
     ! Call the function
     "box_value_struct" f %alien-invoke ;
 
index 2077f51e0a7c8b5b1302bfb7ddf58f556d6e92f7..841a4e4c5518264cd8dec2332ade0f5f1d1dea5b 100644 (file)
@@ -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 ;
index 42fcfaa6a2421f0d851c884a701ea24485059b80..26488b8d959659762ce7609a68e2a80962aa3772 100644 (file)
@@ -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 ( -- )
index 133223b6e4787c0c37b0a8a2e2410a68b087dea6..483a5825a9e00e1674529d8be513ea3e18b5ec45 100644 (file)
@@ -12,7 +12,7 @@ SYMBOL: delimiter
 
 CHAR: , delimiter set-global
 
-: delimiter> delimiter get ; inline
+: delimiter> ( -- delimiter ) delimiter get ; inline
     
 DEFER: quoted-field ( -- endchar )
     
index bd0b443fbe860f15a43ec36f41d1c49fe327f4fa..d5908740c611068609cdf53a840e4ec9bff70251 100644 (file)
@@ -41,12 +41,15 @@ HELP: +user-assigned-id+
 { $description "The user is responsible for choosing a primary key for tuples inserted with this database type. Keys must be unique or else the database will throw an error. Usually it is better to use a " { $link +db-assigned-id+ } "." } ;
 
 HELP: <generator-bind>
+{ $values { "slot-name" object } { "key" object } { "generator-singleton" object } { "type" object } { "generator-bind" generator-bind } }
 { $description "" } ;
 
 HELP: <literal-bind>
+{ $values { "key" object } { "type" object } { "value" object } { "literal-bind" literal-bind } }
 { $description "" } ;
 
 HELP: <low-level-binding>
+{ $values { "value" object } { "low-level-binding" low-level-binding } }
 { $description "" } ;
 
 HELP: BIG-INTEGER
index c002c2fa759edffbc1587326ca129d0caa818486..0ffb4f7d9546a76b3cf95bbc311a4841d5939f1c 100644 (file)
@@ -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 )
index 2a7f92f9329dcb6378472732882588c71a76726d..6c540b0e21ba86969195b6ce09503f50439fe2d3 100644 (file)
@@ -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 )
index 9fa477f51a5f20be2b32a8ec028dafe6c08a5adf..cfcc42dced5424e6659aaa4a1b78b756f4750ed1 100644 (file)
@@ -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 )
index fc3deae670d6ab4236f92719ff5419094bae8e23..f9460955783234770e4aa2b52de2602c88305d72 100644 (file)
@@ -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 )
index c4b3ad35c1a0268022875b7216d78df6fcc45826..375559c20a05c2c71e4e17e9e84d083754be1576 100755 (executable)
@@ -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 )
index 1a6f8e902cb610b3a1d7e79e8d72e6028d1e7119..b574e7f8249c35d86a9db5167f987d984aad5962 100644 (file)
@@ -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
index e22de4f68d96d5fe6aa62e63bd4c4bad4dd73316..c21d5283dd04e09612acba92188e01d59582ba96 100644 (file)
@@ -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 -- )
index d68008c2ca21680dbd034c754575824ab894f2b0..5acaef10a727516b31208f07ebd6e6cda0bc9295 100644 (file)
@@ -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 )
index e0b48a3e72b5f7aba591ba822f8a974d57a5e604..3bfd764b065b622461d6e7947a40f70b1ba18e23 100644 (file)
@@ -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
 
index 994dc60ba378faf6624b83eba8fa83f1c34c0e0e..41f5ff5fa50d247802781d12616cdb15d72b71e2 100644 (file)
@@ -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 )
diff --git a/basis/editors/textpad/authors.txt b/basis/editors/textpad/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/basis/editors/textpad/summary.txt b/basis/editors/textpad/summary.txt
new file mode 100644 (file)
index 0000000..c882050
--- /dev/null
@@ -0,0 +1 @@
+TextPad editor integration
diff --git a/basis/editors/textpad/tags.txt b/basis/editors/textpad/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/basis/editors/textpad/textpad.factor b/basis/editors/textpad/textpad.factor
new file mode 100644 (file)
index 0000000..4963eab
--- /dev/null
@@ -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
index f1929ebf64a16f4280dac4fae1e78bc69096c68f..088d3cabbf93a860b1c864a732a2772e3990c214 100644 (file)
@@ -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 )
index cf42884084d41a022cffa999d5653022be11226b..3387dc597108bccbdfda41cb4b056724f751b05d 100644 (file)
@@ -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"
index fa0f6852ddcb96f1ee41a39630cf9bc08320cd3c..ef670d5d28f482006db8704c3684001517c13a6d 100644 (file)
@@ -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
 
index d71179d599f0193e7e427cbb019143841d5057c8..f6d5013ed0078f02764f2a9f5e1fb19c404ff522 100644 (file)
@@ -8,7 +8,7 @@ sequences ftp io.launcher.unix.parser unicode.case splitting
 assocs classes io.servers.connection destructors calendar
 io.timeouts io.streams.duplex threads continuations math
 concurrency.promises byte-arrays io.backend tools.hexdump
-tools.files io.streams.string ;
+tools.files io.streams.string math.bitwise ;
 IN: ftp.server
 
 TUPLE: ftp-client url mode state command-promise user password ;
@@ -49,7 +49,7 @@ C: <ftp-list> ftp-list
     [ >>raw ] [ tokenize-command >>tokenized ] bi ;
 
 : (send-response) ( n string separator -- )
-    rot number>string write write ftp-send ;
+    [ number>string write ] 2dip write ftp-send ;
 
 : send-response ( ftp-response -- )
     [ n>> ] [ strings>> ] bi
@@ -102,7 +102,7 @@ ERROR: type-error type ;
 : handle-TYPE ( obj -- )
     [
         tokenized>> second parse-type
-        200 "Switching to " rot " mode" 3append server-response
+        [ 200 ] dip "Switching to " " mode" surround server-response
     ] [
         2drop "TYPE is binary only" ftp-error
     ] recover ;
@@ -111,11 +111,11 @@ ERROR: type-error type ;
     remote-address get class new 0 >>port binary <server> ;
 
 : port>bytes ( port -- hi lo )
-    [ -8 shift ] keep [ HEX: ff bitand ] bi@ ;
+    [ -8 shift ] keep [ 8 bits ] bi@ ;
 
 : handle-PWD ( obj -- )
     drop
-    257 current-directory get "\"" "\"" surround server-response ;
+    257 current-directory get "\"" dup surround server-response ;
 
 : handle-SYST ( obj -- )
     drop
@@ -155,15 +155,19 @@ M: ftp-list service-command ( stream obj -- )
     finish-directory ;
 
 : transfer-outgoing-file ( path -- )
-    150 "Opening BINARY mode data connection for "
-    rot   
-    [ file-name ] [
-        " " swap  file-info size>> number>string
-        "(" " bytes)." surround append
-    ] bi 3append server-response ;
+    [
+        150
+        "Opening BINARY mode data connection for "
+    ] dip
+    [
+        file-name
+    ] [
+        file-info size>> number>string
+        "(" " bytes)." surround
+    ] bi " " glue append server-response ;
 
 : transfer-incoming-file ( path -- )
-    150 "Opening BINARY mode data connection for " rot append
+    [ 150 ] dip "Opening BINARY mode data connection for " prepend
     server-response ;
 
 : finish-file-transfer ( -- )
@@ -209,8 +213,9 @@ M: ftp-put service-command ( stream obj -- )
 
 : handle-SIZE ( obj -- )
     [
+        [ 213 ] dip
         tokenized>> second file-info size>>
-        213 swap number>string server-response
+        number>string server-response
     ] [
         2drop
         550 "Could not get file size" server-response
@@ -228,21 +233,20 @@ M: ftp-put service-command ( stream obj -- )
 
 : handle-PASV ( obj -- )
     drop client get passive >>mode drop
-    expect-connection
-    [
-        "Entering Passive Mode (127,0,0,1," %
-        port>bytes [ number>string ] bi@ "," glue %
-        ")" %
-    ] "" make 227 swap server-response ;
+    221
+    expect-connection port>bytes [ number>string ] bi@ "," glue
+    "Entering Passive Mode (127,0,0,1," ")" surround
+    server-response ;
 
 : handle-EPSV ( obj -- )
     drop
     client get command-promise>> [
         "You already have a passive stream" ftp-error
     ] [
-        229 "Entering Extended Passive Mode (|||"
+        229
         expect-connection number>string
-        "|)" 3append server-response
+        "Entering Extended Passive Mode (|||" "|)" surround
+        server-response
     ] if ;
 
 ! LPRT 6,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,242,186
index fd3671fa1c8ede95f2cd8be8a9750f2f98eeafa0..b70ec0ae57f022fe978655fd929e9fee22b8a9f1 100644 (file)
@@ -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>
index 0fa20b41fc43b63918a6c20cc0892625bfbb11b2..b4d4c08d42dbb00c4e5bcae887f23aa073ed0dc7 100644 (file)
@@ -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
index ba95a9f249d201ba841cb53c7ee5029bf07f62a0..aa1ebf77865cca0dc8f05a2bebbc2986156ddace 100644 (file)
@@ -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? ;
 
index fbebc7f0f6b0661bc35f649f51425c9c7dbf2442..d5729f218be20b7235c47ad4b48ec1d7df888eaf 100644 (file)
@@ -43,9 +43,9 @@ IN: help.lint
 
 : check-values ( word element -- )
     {
+        [ drop { [ symbol? ] [ macro? ] [ parsing-word? ] } 1|| ]
         [ drop "declared-effect" word-prop not ]
         [ nip contains-funky-elements? ]
-        [ drop macro? ]
         [
             [ effect-values >array ]
             [ extract-values >array ]
@@ -59,7 +59,7 @@ IN: help.lint
     ] each ;
 
 : vocab-exists? ( name -- ? )
-    dup vocab swap "all-vocabs" get member? or ;
+    [ vocab ] [ "all-vocabs" get member? ] bi or ;
 
 : check-modules ( element -- )
     \ $vocab-link swap elements [
index 1f2975bce1923ce0b40ea940d367b8a277a3a918..f6408d3b5917e82ac2f9da0a9daeae9b3b0316f2 100644 (file)
@@ -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
index c302a581abec2774dce146a043fa893835f03caf..e775651cbca6c9c0979394ab089d46988421c606 100644 (file)
@@ -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." } ;
 
index 12183f1b2528da7bea382b9a22a14a943b2eff60..29f61416fa1fd003d4f9d1592b6dd2d520356278 100644 (file)
@@ -4,8 +4,8 @@ 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 )
-{ $values { "response" response } { "responder" trivial-responder } }
+HELP: <trivial-responder>
+{ $values { "response" response } { "trivial-responder" trivial-responder } }
 { $description "Creates a new trivial responder which outputs the same response for every request." } ;
 
 HELP: benchmark?
index bb8175b35c5ab8f34e827b8f2a70b7732da01651..b8887debed98a6d8ef8ccd776aa32909ff3b154a 100755 (executable)
@@ -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 ;
 
index 17f8552c2bb664220b427bb703f9dbdc1f3ceda8..137e919412f65fb12c43d3a1355301fdaf887272 100755 (executable)
@@ -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
index b9ef53f4f5bb135313d525bf99bb5c02ce22155e..91a4afd20dee0ffbc7a12970a8ff826d88df34ab 100644 (file)
@@ -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
diff --git a/basis/io/directories/unix/tags.txt b/basis/io/directories/unix/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/basis/io/files/info/unix/tags.txt b/basis/io/files/info/unix/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/basis/io/files/links/unix/tags.txt b/basis/io/files/links/unix/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
index ac78cdff0c680f737a6967319b95a429120707b3..9518d1c754366e135344ad1c181c03984a3e29ec 100644 (file)
@@ -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 )
     [
index 727f72c808bd838fcc2dc4997a6f456a35d2bf20..e934dc8cd256df96740fa89480dd253da64cdd21 100644 (file)
@@ -1,4 +1,4 @@
-USING: io.files kernel tools.test io.backend
+USING: io.files io.pathnames kernel tools.test io.backend
 io.files.windows.nt splitting sequences ;
 IN: io.files.windows.nt.tests
 
index 37c6e3190ae43c982c4e194aac0232fc65ca9a30..d0d9d5174a695d7161b6fcb90fe1f7138443b0a8 100755 (executable)
@@ -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 ;
index 2cdb7d5f89ba23f1521876591810af812bbeda3d..62fe45dc7fb5a74556a5180724088ae714bf3d10 100644 (file)
@@ -1,6 +1,7 @@
 USING: io.launcher tools.test calendar accessors environment
 namespaces kernel system arrays io io.files io.encodings.ascii
-sequences parser assocs hashtables math continuations eval ;
+sequences parser assocs hashtables math continuations eval
+io.files.temp io.directories io.pathnames ;
 IN: io.launcher.windows.nt.tests
 
 [ ] [
index 01f64dfccfd061175de6b07a578ad377e0996e4e..5dd4fe6b405043ed84f4a3090560c05b6d506fb3 100644 (file)
@@ -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> } "." } ;
 
index ca4f424fb6cadf1751d081bc67b21f3d631e54c0..48afafeec742ac253e3f74c78f633fb9fba7e097 100644 (file)
@@ -15,7 +15,7 @@ HELP: duplex-stream
 { $class-description "A bidirectional stream wrapping an input and output stream." } ;
 
 HELP: <duplex-stream>
-{ $values { "in" "an input stream" } { "out" "an output stream" } { "stream" " a duplex stream" } }
+{ $values { "in" "an input stream" } { "out" "an output stream" } { "duplex-stream" duplex-stream } }
 { $description "Creates a duplex stream. Writing to a duplex stream will write to " { $snippet "out" } ", and reading from a duplex stream will read from " { $snippet "in" } ". Closing a duplex stream closes both the input and output streams." } ;
 
 HELP: with-stream
index febec6573a104221787751e48df6c4b91ce068d5..c29f3d5d702a7aa87d849f673651173dca9f0f1e 100644 (file)
@@ -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 } "." } ;
 
index ece5c1d20021617643364ccacc569c77fc8ccc9e..1c1f288797924b5428463c32733c5ff0814ee100 100644 (file)
@@ -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
old mode 100644 (file)
new mode 100755 (executable)
index 89a21b6..2c03164
@@ -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
 
 >>
 
index 8411baf94ca310e063e7a68150985ab9d725b773..ff52c17047e98c0cac336d9b84d8f6c0bb308bd3 100644 (file)
@@ -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 ;
index 31c9e44b1d3337979ceeafe9dc035092850bee78..2077d82b70454623348d569b0ae14af486745ced 100644 (file)
@@ -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." } ;
 
index d8a80340ba5773375e323039eef5a552d89ebc8a..4be8dcc9a734413676d045615b684d1c84d820ae 100644 (file)
@@ -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
index ed76ccaedd1e6cc6a6d0f9181537bfe8cb069556..86c3b0de0b70bd009ba0fa0391d8b6dae2a6b9b3 100644 (file)
@@ -11,7 +11,7 @@ SYMBOL: full-interval
 
 TUPLE: interval { from read-only } { to read-only } ;
 
-: <interval> ( from to -- int )
+: <interval> ( from to -- interval )
     2dup [ first ] bi@ {
         { [ 2dup > ] [ 2drop 2drop empty-interval ] }
         { [ 2dup = ] [
index bb0d025dc6a6d919edddda62ca5330a00dbbdc3c..bc6da9f5643360c50f8cb6100bd212a987cc738c 100755 (executable)
@@ -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
 
index f7b3b37e257c5ba6c19681ae17dd234ae5a2f633..1a28904705f0543a5eb3a5ea96d8971945c18af0 100644 (file)
@@ -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
 
index d6a8d51fbebfb5d8cfd6a2ad0a3755addb84793e..e498919f1178e0f484d221d4271538a656593a77 100644 (file)
@@ -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
index 64d4b1a041ef0aebf1fc4fdc5e16579845690665..930e5b9f1ce63936d40298c39eca1cbec1247dd5 100644 (file)
@@ -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 )
index 82643bef154a72488ca922931ef95acb344eeb05..d1ab0a34c1c50fa3384a7f1d5678ca88165f539a 100644 (file)
@@ -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
index 59b2422d731e1c1333689e48b3ed393bc144595e..a7337da353fb9c8eb6ef372083737be812394bd6 100644 (file)
@@ -4,7 +4,7 @@
 ! This file is based on the gl.h that comes with xorg-x11 6.8.2
 
 USING: alien alien.syntax combinators kernel parser sequences
-system words opengl.gl.extensions ;
+system words opengl.gl.extensions alias constants ;
 
 IN: opengl.gl
 
@@ -27,603 +27,599 @@ TYPEDEF: void*   GLvoid*
 ! Constants
 
 ! Boolean values
-: GL_FALSE                          HEX: 0 ; inline
-: GL_TRUE                           HEX: 1 ; inline
+CONSTANT: GL_FALSE                          HEX: 0
+CONSTANT: GL_TRUE                           HEX: 1
 
 ! Data types
-: GL_BYTE                           HEX: 1400 ; inline
-: GL_UNSIGNED_BYTE                  HEX: 1401 ; inline
-: GL_SHORT                          HEX: 1402 ; inline
-: GL_UNSIGNED_SHORT                 HEX: 1403 ; inline
-: GL_INT                            HEX: 1404 ; inline
-: GL_UNSIGNED_INT                   HEX: 1405 ; inline
-: GL_FLOAT                          HEX: 1406 ; inline
-: GL_2_BYTES                        HEX: 1407 ; inline
-: GL_3_BYTES                        HEX: 1408 ; inline
-: GL_4_BYTES                        HEX: 1409 ; inline
-: GL_DOUBLE                         HEX: 140A ; inline
+CONSTANT: GL_BYTE                           HEX: 1400
+CONSTANT: GL_UNSIGNED_BYTE                  HEX: 1401
+CONSTANT: GL_SHORT                          HEX: 1402
+CONSTANT: GL_UNSIGNED_SHORT                 HEX: 1403
+CONSTANT: GL_INT                            HEX: 1404
+CONSTANT: GL_UNSIGNED_INT                   HEX: 1405
+CONSTANT: GL_FLOAT                          HEX: 1406
+CONSTANT: GL_2_BYTES                        HEX: 1407
+CONSTANT: GL_3_BYTES                        HEX: 1408
+CONSTANT: GL_4_BYTES                        HEX: 1409
+CONSTANT: GL_DOUBLE                         HEX: 140A
 
 ! Primitives
-: GL_POINTS                         HEX: 0000 ; inline
-: GL_LINES                          HEX: 0001 ; inline
-: GL_LINE_LOOP                      HEX: 0002 ; inline
-: GL_LINE_STRIP                     HEX: 0003 ; inline
-: GL_TRIANGLES                      HEX: 0004 ; inline
-: GL_TRIANGLE_STRIP                 HEX: 0005 ; inline
-: GL_TRIANGLE_FAN                   HEX: 0006 ; inline
-: GL_QUADS                          HEX: 0007 ; inline
-: GL_QUAD_STRIP                     HEX: 0008 ; inline
-: GL_POLYGON                        HEX: 0009 ; inline
+CONSTANT: GL_POINTS                         HEX: 0000
+CONSTANT: GL_LINES                          HEX: 0001
+CONSTANT: GL_LINE_LOOP                      HEX: 0002
+CONSTANT: GL_LINE_STRIP                     HEX: 0003
+CONSTANT: GL_TRIANGLES                      HEX: 0004
+CONSTANT: GL_TRIANGLE_STRIP                 HEX: 0005
+CONSTANT: GL_TRIANGLE_FAN                   HEX: 0006
+CONSTANT: GL_QUADS                          HEX: 0007
+CONSTANT: GL_QUAD_STRIP                     HEX: 0008
+CONSTANT: GL_POLYGON                        HEX: 0009
 
 ! Vertex arrays
-: GL_VERTEX_ARRAY                   HEX: 8074 ; inline
-: GL_NORMAL_ARRAY                   HEX: 8075 ; inline
-: GL_COLOR_ARRAY                    HEX: 8076 ; inline
-: GL_INDEX_ARRAY                    HEX: 8077 ; inline
-: GL_TEXTURE_COORD_ARRAY            HEX: 8078 ; inline
-: GL_EDGE_FLAG_ARRAY                HEX: 8079 ; inline
-: GL_VERTEX_ARRAY_SIZE              HEX: 807A ; inline
-: GL_VERTEX_ARRAY_TYPE              HEX: 807B ; inline
-: GL_VERTEX_ARRAY_STRIDE            HEX: 807C ; inline
-: GL_NORMAL_ARRAY_TYPE              HEX: 807E ; inline
-: GL_NORMAL_ARRAY_STRIDE            HEX: 807F ; inline
-: GL_COLOR_ARRAY_SIZE               HEX: 8081 ; inline
-: GL_COLOR_ARRAY_TYPE               HEX: 8082 ; inline
-: GL_COLOR_ARRAY_STRIDE             HEX: 8083 ; inline
-: GL_INDEX_ARRAY_TYPE               HEX: 8085 ; inline
-: GL_INDEX_ARRAY_STRIDE             HEX: 8086 ; inline
-: GL_TEXTURE_COORD_ARRAY_SIZE       HEX: 8088 ; inline
-: GL_TEXTURE_COORD_ARRAY_TYPE       HEX: 8089 ; inline
-: GL_TEXTURE_COORD_ARRAY_STRIDE     HEX: 808A ; inline
-: GL_EDGE_FLAG_ARRAY_STRIDE         HEX: 808C ; inline
-: GL_VERTEX_ARRAY_POINTER           HEX: 808E ; inline
-: GL_NORMAL_ARRAY_POINTER           HEX: 808F ; inline
-: GL_COLOR_ARRAY_POINTER            HEX: 8090 ; inline
-: GL_INDEX_ARRAY_POINTER            HEX: 8091 ; inline
-: GL_TEXTURE_COORD_ARRAY_POINTER    HEX: 8092 ; inline
-: GL_EDGE_FLAG_ARRAY_POINTER        HEX: 8093 ; inline
-: GL_V2F                            HEX: 2A20 ; inline
-: GL_V3F                            HEX: 2A21 ; inline
-: GL_C4UB_V2F                       HEX: 2A22 ; inline
-: GL_C4UB_V3F                       HEX: 2A23 ; inline
-: GL_C3F_V3F                        HEX: 2A24 ; inline
-: GL_N3F_V3F                        HEX: 2A25 ; inline
-: GL_C4F_N3F_V3F                    HEX: 2A26 ; inline
-: GL_T2F_V3F                        HEX: 2A27 ; inline
-: GL_T4F_V4F                        HEX: 2A28 ; inline
-: GL_T2F_C4UB_V3F                   HEX: 2A29 ; inline
-: GL_T2F_C3F_V3F                    HEX: 2A2A ; inline
-: GL_T2F_N3F_V3F                    HEX: 2A2B ; inline
-: GL_T2F_C4F_N3F_V3F                HEX: 2A2C ; inline
-: GL_T4F_C4F_N3F_V4F                HEX: 2A2D ; inline
+CONSTANT: GL_VERTEX_ARRAY                   HEX: 8074
+CONSTANT: GL_NORMAL_ARRAY                   HEX: 8075
+CONSTANT: GL_COLOR_ARRAY                    HEX: 8076
+CONSTANT: GL_INDEX_ARRAY                    HEX: 8077
+CONSTANT: GL_TEXTURE_COORD_ARRAY            HEX: 8078
+CONSTANT: GL_EDGE_FLAG_ARRAY                HEX: 8079
+CONSTANT: GL_VERTEX_ARRAY_SIZE              HEX: 807A
+CONSTANT: GL_VERTEX_ARRAY_TYPE              HEX: 807B
+CONSTANT: GL_VERTEX_ARRAY_STRIDE            HEX: 807C
+CONSTANT: GL_NORMAL_ARRAY_TYPE              HEX: 807E
+CONSTANT: GL_NORMAL_ARRAY_STRIDE            HEX: 807F
+CONSTANT: GL_COLOR_ARRAY_SIZE               HEX: 8081
+CONSTANT: GL_COLOR_ARRAY_TYPE               HEX: 8082
+CONSTANT: GL_COLOR_ARRAY_STRIDE             HEX: 8083
+CONSTANT: GL_INDEX_ARRAY_TYPE               HEX: 8085
+CONSTANT: GL_INDEX_ARRAY_STRIDE             HEX: 8086
+CONSTANT: GL_TEXTURE_COORD_ARRAY_SIZE       HEX: 8088
+CONSTANT: GL_TEXTURE_COORD_ARRAY_TYPE       HEX: 8089
+CONSTANT: GL_TEXTURE_COORD_ARRAY_STRIDE     HEX: 808A
+CONSTANT: GL_EDGE_FLAG_ARRAY_STRIDE         HEX: 808C
+CONSTANT: GL_VERTEX_ARRAY_POINTER           HEX: 808E
+CONSTANT: GL_NORMAL_ARRAY_POINTER           HEX: 808F
+CONSTANT: GL_COLOR_ARRAY_POINTER            HEX: 8090
+CONSTANT: GL_INDEX_ARRAY_POINTER            HEX: 8091
+CONSTANT: GL_TEXTURE_COORD_ARRAY_POINTER    HEX: 8092
+CONSTANT: GL_EDGE_FLAG_ARRAY_POINTER        HEX: 8093
+CONSTANT: GL_V2F                            HEX: 2A20
+CONSTANT: GL_V3F                            HEX: 2A21
+CONSTANT: GL_C4UB_V2F                       HEX: 2A22
+CONSTANT: GL_C4UB_V3F                       HEX: 2A23
+CONSTANT: GL_C3F_V3F                        HEX: 2A24
+CONSTANT: GL_N3F_V3F                        HEX: 2A25
+CONSTANT: GL_C4F_N3F_V3F                    HEX: 2A26
+CONSTANT: GL_T2F_V3F                        HEX: 2A27
+CONSTANT: GL_T4F_V4F                        HEX: 2A28
+CONSTANT: GL_T2F_C4UB_V3F                   HEX: 2A29
+CONSTANT: GL_T2F_C3F_V3F                    HEX: 2A2A
+CONSTANT: GL_T2F_N3F_V3F                    HEX: 2A2B
+CONSTANT: GL_T2F_C4F_N3F_V3F                HEX: 2A2C
+CONSTANT: GL_T4F_C4F_N3F_V4F                HEX: 2A2D
 
 ! Matrix mode
-: GL_MATRIX_MODE                    HEX: 0BA0 ; inline
-: GL_MODELVIEW                      HEX: 1700 ; inline
-: GL_PROJECTION                     HEX: 1701 ; inline
-: GL_TEXTURE                        HEX: 1702 ; inline
+CONSTANT: GL_MATRIX_MODE                    HEX: 0BA0
+CONSTANT: GL_MODELVIEW                      HEX: 1700
+CONSTANT: GL_PROJECTION                     HEX: 1701
+CONSTANT: GL_TEXTURE                        HEX: 1702
 
 ! Points
-: GL_POINT_SMOOTH                   HEX: 0B10 ; inline
-: GL_POINT_SIZE                     HEX: 0B11 ; inline
-: GL_POINT_SIZE_GRANULARITY         HEX: 0B13 ; inline
-: GL_POINT_SIZE_RANGE               HEX: 0B12 ; inline
+CONSTANT: GL_POINT_SMOOTH                   HEX: 0B10
+CONSTANT: GL_POINT_SIZE                     HEX: 0B11
+CONSTANT: GL_POINT_SIZE_GRANULARITY         HEX: 0B13
+CONSTANT: GL_POINT_SIZE_RANGE               HEX: 0B12
 
 ! Lines
-: GL_LINE_SMOOTH                    HEX: 0B20 ; inline
-: GL_LINE_STIPPLE                   HEX: 0B24 ; inline
-: GL_LINE_STIPPLE_PATTERN           HEX: 0B25 ; inline
-: GL_LINE_STIPPLE_REPEAT            HEX: 0B26 ; inline
-: GL_LINE_WIDTH                     HEX: 0B21 ; inline
-: GL_LINE_WIDTH_GRANULARITY         HEX: 0B23 ; inline
-: GL_LINE_WIDTH_RANGE               HEX: 0B22 ; inline
+CONSTANT: GL_LINE_SMOOTH                    HEX: 0B20
+CONSTANT: GL_LINE_STIPPLE                   HEX: 0B24
+CONSTANT: GL_LINE_STIPPLE_PATTERN           HEX: 0B25
+CONSTANT: GL_LINE_STIPPLE_REPEAT            HEX: 0B26
+CONSTANT: GL_LINE_WIDTH                     HEX: 0B21
+CONSTANT: GL_LINE_WIDTH_GRANULARITY         HEX: 0B23
+CONSTANT: GL_LINE_WIDTH_RANGE               HEX: 0B22
 
 ! Polygons
-: GL_POINT                          HEX: 1B00 ; inline
-: GL_LINE                           HEX: 1B01 ; inline
-: GL_FILL                           HEX: 1B02 ; inline
-: GL_CW                             HEX: 0900 ; inline
-: GL_CCW                            HEX: 0901 ; inline
-: GL_FRONT                          HEX: 0404 ; inline
-: GL_BACK                           HEX: 0405 ; inline
-: GL_POLYGON_MODE                   HEX: 0B40 ; inline
-: GL_POLYGON_SMOOTH                 HEX: 0B41 ; inline
-: GL_POLYGON_STIPPLE                HEX: 0B42 ; inline
-: GL_EDGE_FLAG                      HEX: 0B43 ; inline
-: GL_CULL_FACE                      HEX: 0B44 ; inline
-: GL_CULL_FACE_MODE                 HEX: 0B45 ; inline
-: GL_FRONT_FACE                     HEX: 0B46 ; inline
-: GL_POLYGON_OFFSET_FACTOR          HEX: 8038 ; inline
-: GL_POLYGON_OFFSET_UNITS           HEX: 2A00 ; inline
-: GL_POLYGON_OFFSET_POINT           HEX: 2A01 ; inline
-: GL_POLYGON_OFFSET_LINE            HEX: 2A02 ; inline
-: GL_POLYGON_OFFSET_FILL            HEX: 8037 ; inline
+CONSTANT: GL_POINT                          HEX: 1B00
+CONSTANT: GL_LINE                           HEX: 1B01
+CONSTANT: GL_FILL                           HEX: 1B02
+CONSTANT: GL_CW                             HEX: 0900
+CONSTANT: GL_CCW                            HEX: 0901
+CONSTANT: GL_FRONT                          HEX: 0404
+CONSTANT: GL_BACK                           HEX: 0405
+CONSTANT: GL_POLYGON_MODE                   HEX: 0B40
+CONSTANT: GL_POLYGON_SMOOTH                 HEX: 0B41
+CONSTANT: GL_POLYGON_STIPPLE                HEX: 0B42
+CONSTANT: GL_EDGE_FLAG                      HEX: 0B43
+CONSTANT: GL_CULL_FACE                      HEX: 0B44
+CONSTANT: GL_CULL_FACE_MODE                 HEX: 0B45
+CONSTANT: GL_FRONT_FACE                     HEX: 0B46
+CONSTANT: GL_POLYGON_OFFSET_FACTOR          HEX: 8038
+CONSTANT: GL_POLYGON_OFFSET_UNITS           HEX: 2A00
+CONSTANT: GL_POLYGON_OFFSET_POINT           HEX: 2A01
+CONSTANT: GL_POLYGON_OFFSET_LINE            HEX: 2A02
+CONSTANT: GL_POLYGON_OFFSET_FILL            HEX: 8037
 
 ! Display Lists
-: GL_COMPILE                        HEX: 1300 ; inline
-: GL_COMPILE_AND_EXECUTE            HEX: 1301 ; inline
-: GL_LIST_BASE                      HEX: 0B32 ; inline
-: GL_LIST_INDEX                     HEX: 0B33 ; inline
-: GL_LIST_MODE                      HEX: 0B30 ; inline
+CONSTANT: GL_COMPILE                        HEX: 1300
+CONSTANT: GL_COMPILE_AND_EXECUTE            HEX: 1301
+CONSTANT: GL_LIST_BASE                      HEX: 0B32
+CONSTANT: GL_LIST_INDEX                     HEX: 0B33
+CONSTANT: GL_LIST_MODE                      HEX: 0B30
 
 ! Depth buffer
-: GL_NEVER                          HEX: 0200 ; inline
-: GL_LESS                           HEX: 0201 ; inline
-: GL_EQUAL                          HEX: 0202 ; inline
-: GL_LEQUAL                         HEX: 0203 ; inline
-: GL_GREATER                        HEX: 0204 ; inline
-: GL_NOTEQUAL                       HEX: 0205 ; inline
-: GL_GEQUAL                         HEX: 0206 ; inline
-: GL_ALWAYS                         HEX: 0207 ; inline
-: GL_DEPTH_TEST                     HEX: 0B71 ; inline
-: GL_DEPTH_BITS                     HEX: 0D56 ; inline
-: GL_DEPTH_CLEAR_VALUE              HEX: 0B73 ; inline
-: GL_DEPTH_FUNC                     HEX: 0B74 ; inline
-: GL_DEPTH_RANGE                    HEX: 0B70 ; inline
-: GL_DEPTH_WRITEMASK                HEX: 0B72 ; inline
-: GL_DEPTH_COMPONENT                HEX: 1902 ; inline
+CONSTANT: GL_NEVER                          HEX: 0200
+CONSTANT: GL_LESS                           HEX: 0201
+CONSTANT: GL_EQUAL                          HEX: 0202
+CONSTANT: GL_LEQUAL                         HEX: 0203
+CONSTANT: GL_GREATER                        HEX: 0204
+CONSTANT: GL_NOTEQUAL                       HEX: 0205
+CONSTANT: GL_GEQUAL                         HEX: 0206
+CONSTANT: GL_ALWAYS                         HEX: 0207
+CONSTANT: GL_DEPTH_TEST                     HEX: 0B71
+CONSTANT: GL_DEPTH_BITS                     HEX: 0D56
+CONSTANT: GL_DEPTH_CLEAR_VALUE              HEX: 0B73
+CONSTANT: GL_DEPTH_FUNC                     HEX: 0B74
+CONSTANT: GL_DEPTH_RANGE                    HEX: 0B70
+CONSTANT: GL_DEPTH_WRITEMASK                HEX: 0B72
+CONSTANT: GL_DEPTH_COMPONENT                HEX: 1902
 
 ! Lighting
-: GL_LIGHTING                       HEX: 0B50 ; inline
-: GL_LIGHT0                         HEX: 4000 ; inline
-: GL_LIGHT1                         HEX: 4001 ; inline
-: GL_LIGHT2                         HEX: 4002 ; inline
-: GL_LIGHT3                         HEX: 4003 ; inline
-: GL_LIGHT4                         HEX: 4004 ; inline
-: GL_LIGHT5                         HEX: 4005 ; inline
-: GL_LIGHT6                         HEX: 4006 ; inline
-: GL_LIGHT7                         HEX: 4007 ; inline
-: GL_SPOT_EXPONENT                  HEX: 1205 ; inline
-: GL_SPOT_CUTOFF                    HEX: 1206 ; inline
-: GL_CONSTANT_ATTENUATION           HEX: 1207 ; inline
-: GL_LINEAR_ATTENUATION             HEX: 1208 ; inline
-: GL_QUADRATIC_ATTENUATION          HEX: 1209 ; inline
-: GL_AMBIENT                        HEX: 1200 ; inline
-: GL_DIFFUSE                        HEX: 1201 ; inline
-: GL_SPECULAR                       HEX: 1202 ; inline
-: GL_SHININESS                      HEX: 1601 ; inline
-: GL_EMISSION                       HEX: 1600 ; inline
-: GL_POSITION                       HEX: 1203 ; inline
-: GL_SPOT_DIRECTION                 HEX: 1204 ; inline
-: GL_AMBIENT_AND_DIFFUSE            HEX: 1602 ; inline
-: GL_COLOR_INDEXES                  HEX: 1603 ; inline
-: GL_LIGHT_MODEL_TWO_SIDE           HEX: 0B52 ; inline
-: GL_LIGHT_MODEL_LOCAL_VIEWER       HEX: 0B51 ; inline
-: GL_LIGHT_MODEL_AMBIENT            HEX: 0B53 ; inline
-: GL_FRONT_AND_BACK                 HEX: 0408 ; inline
-: GL_SHADE_MODEL                    HEX: 0B54 ; inline
-: GL_FLAT                           HEX: 1D00 ; inline
-: GL_SMOOTH                         HEX: 1D01 ; inline
-: GL_COLOR_MATERIAL                 HEX: 0B57 ; inline
-: GL_COLOR_MATERIAL_FACE            HEX: 0B55 ; inline
-: GL_COLOR_MATERIAL_PARAMETER       HEX: 0B56 ; inline
-: GL_NORMALIZE                      HEX: 0BA1 ; inline
+CONSTANT: GL_LIGHTING                       HEX: 0B50
+CONSTANT: GL_LIGHT0                         HEX: 4000
+CONSTANT: GL_LIGHT1                         HEX: 4001
+CONSTANT: GL_LIGHT2                         HEX: 4002
+CONSTANT: GL_LIGHT3                         HEX: 4003
+CONSTANT: GL_LIGHT4                         HEX: 4004
+CONSTANT: GL_LIGHT5                         HEX: 4005
+CONSTANT: GL_LIGHT6                         HEX: 4006
+CONSTANT: GL_LIGHT7                         HEX: 4007
+CONSTANT: GL_SPOT_EXPONENT                  HEX: 1205
+CONSTANT: GL_SPOT_CUTOFF                    HEX: 1206
+CONSTANT: GL_CONSTANT_ATTENUATION           HEX: 1207
+CONSTANT: GL_LINEAR_ATTENUATION             HEX: 1208
+CONSTANT: GL_QUADRATIC_ATTENUATION          HEX: 1209
+CONSTANT: GL_AMBIENT                        HEX: 1200
+CONSTANT: GL_DIFFUSE                        HEX: 1201
+CONSTANT: GL_SPECULAR                       HEX: 1202
+CONSTANT: GL_SHININESS                      HEX: 1601
+CONSTANT: GL_EMISSION                       HEX: 1600
+CONSTANT: GL_POSITION                       HEX: 1203
+CONSTANT: GL_SPOT_DIRECTION                 HEX: 1204
+CONSTANT: GL_AMBIENT_AND_DIFFUSE            HEX: 1602
+CONSTANT: GL_COLOR_INDEXES                  HEX: 1603
+CONSTANT: GL_LIGHT_MODEL_TWO_SIDE           HEX: 0B52
+CONSTANT: GL_LIGHT_MODEL_LOCAL_VIEWER       HEX: 0B51
+CONSTANT: GL_LIGHT_MODEL_AMBIENT            HEX: 0B53
+CONSTANT: GL_FRONT_AND_BACK                 HEX: 0408
+CONSTANT: GL_SHADE_MODEL                    HEX: 0B54
+CONSTANT: GL_FLAT                           HEX: 1D00
+CONSTANT: GL_SMOOTH                         HEX: 1D01
+CONSTANT: GL_COLOR_MATERIAL                 HEX: 0B57
+CONSTANT: GL_COLOR_MATERIAL_FACE            HEX: 0B55
+CONSTANT: GL_COLOR_MATERIAL_PARAMETER       HEX: 0B56
+CONSTANT: GL_NORMALIZE                      HEX: 0BA1
 
 ! User clipping planes
-: GL_CLIP_PLANE0                    HEX: 3000 ; inline
-: GL_CLIP_PLANE1                    HEX: 3001 ; inline
-: GL_CLIP_PLANE2                    HEX: 3002 ; inline
-: GL_CLIP_PLANE3                    HEX: 3003 ; inline
-: GL_CLIP_PLANE4                    HEX: 3004 ; inline
-: GL_CLIP_PLANE5                    HEX: 3005 ; inline
+CONSTANT: GL_CLIP_PLANE0                    HEX: 3000
+CONSTANT: GL_CLIP_PLANE1                    HEX: 3001
+CONSTANT: GL_CLIP_PLANE2                    HEX: 3002
+CONSTANT: GL_CLIP_PLANE3                    HEX: 3003
+CONSTANT: GL_CLIP_PLANE4                    HEX: 3004
+CONSTANT: GL_CLIP_PLANE5                    HEX: 3005
 
 ! Accumulation buffer
-: GL_ACCUM_RED_BITS                 HEX: 0D58 ; inline
-: GL_ACCUM_GREEN_BITS               HEX: 0D59 ; inline
-: GL_ACCUM_BLUE_BITS                HEX: 0D5A ; inline
-: GL_ACCUM_ALPHA_BITS               HEX: 0D5B ; inline
-: GL_ACCUM_CLEAR_VALUE              HEX: 0B80 ; inline
-: GL_ACCUM                          HEX: 0100 ; inline
-: GL_ADD                            HEX: 0104 ; inline
-: GL_LOAD                           HEX: 0101 ; inline
-: GL_MULT                           HEX: 0103 ; inline
-: GL_RETURN                         HEX: 0102 ; inline
+CONSTANT: GL_ACCUM_RED_BITS                 HEX: 0D58
+CONSTANT: GL_ACCUM_GREEN_BITS               HEX: 0D59
+CONSTANT: GL_ACCUM_BLUE_BITS                HEX: 0D5A
+CONSTANT: GL_ACCUM_ALPHA_BITS               HEX: 0D5B
+CONSTANT: GL_ACCUM_CLEAR_VALUE              HEX: 0B80
+CONSTANT: GL_ACCUM                          HEX: 0100
+CONSTANT: GL_ADD                            HEX: 0104
+CONSTANT: GL_LOAD                           HEX: 0101
+CONSTANT: GL_MULT                           HEX: 0103
+CONSTANT: GL_RETURN                         HEX: 0102
 
 ! Alpha testing
-: GL_ALPHA_TEST                     HEX: 0BC0 ; inline
-: GL_ALPHA_TEST_REF                 HEX: 0BC2 ; inline
-: GL_ALPHA_TEST_FUNC                HEX: 0BC1 ; inline
+CONSTANT: GL_ALPHA_TEST                     HEX: 0BC0
+CONSTANT: GL_ALPHA_TEST_REF                 HEX: 0BC2
+CONSTANT: GL_ALPHA_TEST_FUNC                HEX: 0BC1
 
 ! Blending
-: GL_BLEND                          HEX: 0BE2 ; inline
-: GL_BLEND_SRC                      HEX: 0BE1 ; inline
-: GL_BLEND_DST                      HEX: 0BE0 ; inline
-: GL_ZERO                           HEX: 0 ;  inline
-: GL_ONE                            HEX: 1 ;  inline
-: GL_SRC_COLOR                      HEX: 0300 ; inline
-: GL_ONE_MINUS_SRC_COLOR            HEX: 0301 ; inline
-: GL_SRC_ALPHA                      HEX: 0302 ; inline
-: GL_ONE_MINUS_SRC_ALPHA            HEX: 0303 ; inline
-: GL_DST_ALPHA                      HEX: 0304 ; inline
-: GL_ONE_MINUS_DST_ALPHA            HEX: 0305 ; inline
-: GL_DST_COLOR                      HEX: 0306 ; inline
-: GL_ONE_MINUS_DST_COLOR            HEX: 0307 ; inline
-: GL_SRC_ALPHA_SATURATE             HEX: 0308 ; inline
+CONSTANT: GL_BLEND                          HEX: 0BE2
+CONSTANT: GL_BLEND_SRC                      HEX: 0BE1
+CONSTANT: GL_BLEND_DST                      HEX: 0BE0
+CONSTANT: GL_ZERO                           HEX: 0
+CONSTANT: GL_ONE                            HEX: 1
+CONSTANT: GL_SRC_COLOR                      HEX: 0300
+CONSTANT: GL_ONE_MINUS_SRC_COLOR            HEX: 0301
+CONSTANT: GL_SRC_ALPHA                      HEX: 0302
+CONSTANT: GL_ONE_MINUS_SRC_ALPHA            HEX: 0303
+CONSTANT: GL_DST_ALPHA                      HEX: 0304
+CONSTANT: GL_ONE_MINUS_DST_ALPHA            HEX: 0305
+CONSTANT: GL_DST_COLOR                      HEX: 0306
+CONSTANT: GL_ONE_MINUS_DST_COLOR            HEX: 0307
+CONSTANT: GL_SRC_ALPHA_SATURATE             HEX: 0308
 
 ! Render Mode
-: GL_FEEDBACK                       HEX: 1C01 ; inline
-: GL_RENDER                         HEX: 1C00 ; inline
-: GL_SELECT                         HEX: 1C02 ; inline
+CONSTANT: GL_FEEDBACK                       HEX: 1C01
+CONSTANT: GL_RENDER                         HEX: 1C00
+CONSTANT: GL_SELECT                         HEX: 1C02
 
 ! Feedback
-: GL_2D                             HEX: 0600 ; inline
-: GL_3D                             HEX: 0601 ; inline
-: GL_3D_COLOR                       HEX: 0602 ; inline
-: GL_3D_COLOR_TEXTURE               HEX: 0603 ; inline
-: GL_4D_COLOR_TEXTURE               HEX: 0604 ; inline
-: GL_POINT_TOKEN                    HEX: 0701 ; inline
-: GL_LINE_TOKEN                     HEX: 0702 ; inline
-: GL_LINE_RESET_TOKEN               HEX: 0707 ; inline
-: GL_POLYGON_TOKEN                  HEX: 0703 ; inline
-: GL_BITMAP_TOKEN                   HEX: 0704 ; inline
-: GL_DRAW_PIXEL_TOKEN               HEX: 0705 ; inline
-: GL_COPY_PIXEL_TOKEN               HEX: 0706 ; inline
-: GL_PASS_THROUGH_TOKEN             HEX: 0700 ; inline
-: GL_FEEDBACK_BUFFER_POINTER        HEX: 0DF0 ; inline
-: GL_FEEDBACK_BUFFER_SIZE           HEX: 0DF1 ; inline
-: GL_FEEDBACK_BUFFER_TYPE           HEX: 0DF2 ; inline
+CONSTANT: GL_2D                             HEX: 0600
+CONSTANT: GL_3D                             HEX: 0601
+CONSTANT: GL_3D_COLOR                       HEX: 0602
+CONSTANT: GL_3D_COLOR_TEXTURE               HEX: 0603
+CONSTANT: GL_4D_COLOR_TEXTURE               HEX: 0604
+CONSTANT: GL_POINT_TOKEN                    HEX: 0701
+CONSTANT: GL_LINE_TOKEN                     HEX: 0702
+CONSTANT: GL_LINE_RESET_TOKEN               HEX: 0707
+CONSTANT: GL_POLYGON_TOKEN                  HEX: 0703
+CONSTANT: GL_BITMAP_TOKEN                   HEX: 0704
+CONSTANT: GL_DRAW_PIXEL_TOKEN               HEX: 0705
+CONSTANT: GL_COPY_PIXEL_TOKEN               HEX: 0706
+CONSTANT: GL_PASS_THROUGH_TOKEN             HEX: 0700
+CONSTANT: GL_FEEDBACK_BUFFER_POINTER        HEX: 0DF0
+CONSTANT: GL_FEEDBACK_BUFFER_SIZE           HEX: 0DF1
+CONSTANT: GL_FEEDBACK_BUFFER_TYPE           HEX: 0DF2
 
 ! Selection
-: GL_SELECTION_BUFFER_POINTER       HEX: 0DF3 ; inline
-: GL_SELECTION_BUFFER_SIZE          HEX: 0DF4 ; inline
+CONSTANT: GL_SELECTION_BUFFER_POINTER       HEX: 0DF3
+CONSTANT: GL_SELECTION_BUFFER_SIZE          HEX: 0DF4
 
 ! Fog
-: GL_FOG                            HEX: 0B60 ; inline
-: GL_FOG_MODE                       HEX: 0B65 ; inline
-: GL_FOG_DENSITY                    HEX: 0B62 ; inline
-: GL_FOG_COLOR                      HEX: 0B66 ; inline
-: GL_FOG_INDEX                      HEX: 0B61 ; inline
-: GL_FOG_START                      HEX: 0B63 ; inline
-: GL_FOG_END                        HEX: 0B64 ; inline
-: GL_LINEAR                         HEX: 2601 ; inline
-: GL_EXP                            HEX: 0800 ; inline
-: GL_EXP2                           HEX: 0801 ; inline
+CONSTANT: GL_FOG                            HEX: 0B60
+CONSTANT: GL_FOG_MODE                       HEX: 0B65
+CONSTANT: GL_FOG_DENSITY                    HEX: 0B62
+CONSTANT: GL_FOG_COLOR                      HEX: 0B66
+CONSTANT: GL_FOG_INDEX                      HEX: 0B61
+CONSTANT: GL_FOG_START                      HEX: 0B63
+CONSTANT: GL_FOG_END                        HEX: 0B64
+CONSTANT: GL_LINEAR                         HEX: 2601
+CONSTANT: GL_EXP                            HEX: 0800
+CONSTANT: GL_EXP2                           HEX: 0801
 
 ! Logic Ops
-: GL_LOGIC_OP                       HEX: 0BF1 ; inline
-: GL_INDEX_LOGIC_OP                 HEX: 0BF1 ; inline
-: GL_COLOR_LOGIC_OP                 HEX: 0BF2 ; inline
-: GL_LOGIC_OP_MODE                  HEX: 0BF0 ; inline
-: GL_CLEAR                          HEX: 1500 ; inline
-: GL_SET                            HEX: 150F ; inline
-: GL_COPY                           HEX: 1503 ; inline
-: GL_COPY_INVERTED                  HEX: 150C ; inline
-: GL_NOOP                           HEX: 1505 ; inline
-: GL_INVERT                         HEX: 150A ; inline
-: GL_AND                            HEX: 1501 ; inline
-: GL_NAND                           HEX: 150E ; inline
-: GL_OR                             HEX: 1507 ; inline
-: GL_NOR                            HEX: 1508 ; inline
-: GL_XOR                            HEX: 1506 ; inline
-: GL_EQUIV                          HEX: 1509 ; inline
-: GL_AND_REVERSE                    HEX: 1502 ; inline
-: GL_AND_INVERTED                   HEX: 1504 ; inline
-: GL_OR_REVERSE                     HEX: 150B ; inline
-: GL_OR_INVERTED                    HEX: 150D ; inline
+CONSTANT: GL_LOGIC_OP                       HEX: 0BF1
+CONSTANT: GL_INDEX_LOGIC_OP                 HEX: 0BF1
+CONSTANT: GL_COLOR_LOGIC_OP                 HEX: 0BF2
+CONSTANT: GL_LOGIC_OP_MODE                  HEX: 0BF0
+CONSTANT: GL_CLEAR                          HEX: 1500
+CONSTANT: GL_SET                            HEX: 150F
+CONSTANT: GL_COPY                           HEX: 1503
+CONSTANT: GL_COPY_INVERTED                  HEX: 150C
+CONSTANT: GL_NOOP                           HEX: 1505
+CONSTANT: GL_INVERT                         HEX: 150A
+CONSTANT: GL_AND                            HEX: 1501
+CONSTANT: GL_NAND                           HEX: 150E
+CONSTANT: GL_OR                             HEX: 1507
+CONSTANT: GL_NOR                            HEX: 1508
+CONSTANT: GL_XOR                            HEX: 1506
+CONSTANT: GL_EQUIV                          HEX: 1509
+CONSTANT: GL_AND_REVERSE                    HEX: 1502
+CONSTANT: GL_AND_INVERTED                   HEX: 1504
+CONSTANT: GL_OR_REVERSE                     HEX: 150B
+CONSTANT: GL_OR_INVERTED                    HEX: 150D
 
 ! Stencil
-: GL_STENCIL_TEST                   HEX: 0B90 ; inline
-: GL_STENCIL_WRITEMASK              HEX: 0B98 ; inline
-: GL_STENCIL_BITS                   HEX: 0D57 ; inline
-: GL_STENCIL_FUNC                   HEX: 0B92 ; inline
-: GL_STENCIL_VALUE_MASK             HEX: 0B93 ; inline
-: GL_STENCIL_REF                    HEX: 0B97 ; inline
-: GL_STENCIL_FAIL                   HEX: 0B94 ; inline
-: GL_STENCIL_PASS_DEPTH_PASS        HEX: 0B96 ; inline
-: GL_STENCIL_PASS_DEPTH_FAIL        HEX: 0B95 ; inline
-: GL_STENCIL_CLEAR_VALUE            HEX: 0B91 ; inline
-: GL_STENCIL_INDEX                  HEX: 1901 ; inline
-: GL_KEEP                           HEX: 1E00 ; inline
-: GL_REPLACE                        HEX: 1E01 ; inline
-: GL_INCR                           HEX: 1E02 ; inline
-: GL_DECR                           HEX: 1E03 ; inline
+CONSTANT: GL_STENCIL_TEST                   HEX: 0B90
+CONSTANT: GL_STENCIL_WRITEMASK              HEX: 0B98
+CONSTANT: GL_STENCIL_BITS                   HEX: 0D57
+CONSTANT: GL_STENCIL_FUNC                   HEX: 0B92
+CONSTANT: GL_STENCIL_VALUE_MASK             HEX: 0B93
+CONSTANT: GL_STENCIL_REF                    HEX: 0B97
+CONSTANT: GL_STENCIL_FAIL                   HEX: 0B94
+CONSTANT: GL_STENCIL_PASS_DEPTH_PASS        HEX: 0B96
+CONSTANT: GL_STENCIL_PASS_DEPTH_FAIL        HEX: 0B95
+CONSTANT: GL_STENCIL_CLEAR_VALUE            HEX: 0B91
+CONSTANT: GL_STENCIL_INDEX                  HEX: 1901
+CONSTANT: GL_KEEP                           HEX: 1E00
+CONSTANT: GL_REPLACE                        HEX: 1E01
+CONSTANT: GL_INCR                           HEX: 1E02
+CONSTANT: GL_DECR                           HEX: 1E03
 
 ! Buffers, Pixel Drawing/Reading
-: GL_NONE                           HEX:    0 ; inline
-: GL_LEFT                           HEX: 0406 ; inline
-: GL_RIGHT                          HEX: 0407 ; inline
-! defined elsewhere
-! GL_FRONT                          HEX: 0404
-! GL_BACK                           HEX: 0405
-! GL_FRONT_AND_BACK                 HEX: 0408
-: GL_FRONT_LEFT                     HEX: 0400 ; inline
-: GL_FRONT_RIGHT                    HEX: 0401 ; inline
-: GL_BACK_LEFT                      HEX: 0402 ; inline
-: GL_BACK_RIGHT                     HEX: 0403 ; inline
-: GL_AUX0                           HEX: 0409 ; inline
-: GL_AUX1                           HEX: 040A ; inline
-: GL_AUX2                           HEX: 040B ; inline
-: GL_AUX3                           HEX: 040C ; inline
-: GL_COLOR_INDEX                    HEX: 1900 ; inline
-: GL_RED                            HEX: 1903 ; inline
-: GL_GREEN                          HEX: 1904 ; inline
-: GL_BLUE                           HEX: 1905 ; inline
-: GL_ALPHA                          HEX: 1906 ; inline
-: GL_LUMINANCE                      HEX: 1909 ; inline
-: GL_LUMINANCE_ALPHA                HEX: 190A ; inline
-: GL_ALPHA_BITS                     HEX: 0D55 ; inline
-: GL_RED_BITS                       HEX: 0D52 ; inline
-: GL_GREEN_BITS                     HEX: 0D53 ; inline
-: GL_BLUE_BITS                      HEX: 0D54 ; inline
-: GL_INDEX_BITS                     HEX: 0D51 ; inline
-: GL_SUBPIXEL_BITS                  HEX: 0D50 ; inline
-: GL_AUX_BUFFERS                    HEX: 0C00 ; inline
-: GL_READ_BUFFER                    HEX: 0C02 ; inline
-: GL_DRAW_BUFFER                    HEX: 0C01 ; inline
-: GL_DOUBLEBUFFER                   HEX: 0C32 ; inline
-: GL_STEREO                         HEX: 0C33 ; inline
-: GL_BITMAP                         HEX: 1A00 ; inline
-: GL_COLOR                          HEX: 1800 ; inline
-: GL_DEPTH                          HEX: 1801 ; inline
-: GL_STENCIL                        HEX: 1802 ; inline
-: GL_DITHER                         HEX: 0BD0 ; inline
-: GL_RGB                            HEX: 1907 ; inline
-: GL_RGBA                           HEX: 1908 ; inline
+CONSTANT: GL_NONE                           HEX:    0
+CONSTANT: GL_LEFT                           HEX: 0406
+CONSTANT: GL_RIGHT                          HEX: 0407
+
+CONSTANT: GL_FRONT_RIGHT                    HEX: 0401
+CONSTANT: GL_BACK_LEFT                      HEX: 0402
+CONSTANT: GL_BACK_RIGHT                     HEX: 0403
+CONSTANT: GL_AUX0                           HEX: 0409
+CONSTANT: GL_AUX1                           HEX: 040A
+CONSTANT: GL_AUX2                           HEX: 040B
+CONSTANT: GL_AUX3                           HEX: 040C
+CONSTANT: GL_COLOR_INDEX                    HEX: 1900
+CONSTANT: GL_RED                            HEX: 1903
+CONSTANT: GL_GREEN                          HEX: 1904
+CONSTANT: GL_BLUE                           HEX: 1905
+CONSTANT: GL_ALPHA                          HEX: 1906
+CONSTANT: GL_LUMINANCE                      HEX: 1909
+CONSTANT: GL_LUMINANCE_ALPHA                HEX: 190A
+CONSTANT: GL_ALPHA_BITS                     HEX: 0D55
+CONSTANT: GL_RED_BITS                       HEX: 0D52
+CONSTANT: GL_GREEN_BITS                     HEX: 0D53
+CONSTANT: GL_BLUE_BITS                      HEX: 0D54
+CONSTANT: GL_INDEX_BITS                     HEX: 0D51
+CONSTANT: GL_SUBPIXEL_BITS                  HEX: 0D50
+CONSTANT: GL_AUX_BUFFERS                    HEX: 0C00
+CONSTANT: GL_READ_BUFFER                    HEX: 0C02
+CONSTANT: GL_DRAW_BUFFER                    HEX: 0C01
+CONSTANT: GL_DOUBLEBUFFER                   HEX: 0C32
+CONSTANT: GL_STEREO                         HEX: 0C33
+CONSTANT: GL_BITMAP                         HEX: 1A00
+CONSTANT: GL_COLOR                          HEX: 1800
+CONSTANT: GL_DEPTH                          HEX: 1801
+CONSTANT: GL_STENCIL                        HEX: 1802
+CONSTANT: GL_DITHER                         HEX: 0BD0
+CONSTANT: GL_RGB                            HEX: 1907
+CONSTANT: GL_RGBA                           HEX: 1908
 
 ! Implementation limits
-: GL_MAX_LIST_NESTING               HEX: 0B31 ; inline
-: GL_MAX_ATTRIB_STACK_DEPTH         HEX: 0D35 ; inline
-: GL_MAX_MODELVIEW_STACK_DEPTH      HEX: 0D36 ; inline
-: GL_MAX_NAME_STACK_DEPTH           HEX: 0D37 ; inline
-: GL_MAX_PROJECTION_STACK_DEPTH     HEX: 0D38 ; inline
-: GL_MAX_TEXTURE_STACK_DEPTH        HEX: 0D39 ; inline
-: GL_MAX_EVAL_ORDER                 HEX: 0D30 ; inline
-: GL_MAX_LIGHTS                     HEX: 0D31 ; inline
-: GL_MAX_CLIP_PLANES                HEX: 0D32 ; inline
-: GL_MAX_TEXTURE_SIZE               HEX: 0D33 ; inline
-: GL_MAX_PIXEL_MAP_TABLE            HEX: 0D34 ; inline
-: GL_MAX_VIEWPORT_DIMS              HEX: 0D3A ; inline
-: GL_MAX_CLIENT_ATTRIB_STACK_DEPTH  HEX: 0D3B ; inline
+CONSTANT: GL_MAX_LIST_NESTING               HEX: 0B31
+CONSTANT: GL_MAX_ATTRIB_STACK_DEPTH         HEX: 0D35
+CONSTANT: GL_MAX_MODELVIEW_STACK_DEPTH      HEX: 0D36
+CONSTANT: GL_MAX_NAME_STACK_DEPTH           HEX: 0D37
+CONSTANT: GL_MAX_PROJECTION_STACK_DEPTH     HEX: 0D38
+CONSTANT: GL_MAX_TEXTURE_STACK_DEPTH        HEX: 0D39
+CONSTANT: GL_MAX_EVAL_ORDER                 HEX: 0D30
+CONSTANT: GL_MAX_LIGHTS                     HEX: 0D31
+CONSTANT: GL_MAX_CLIP_PLANES                HEX: 0D32
+CONSTANT: GL_MAX_TEXTURE_SIZE               HEX: 0D33
+CONSTANT: GL_MAX_PIXEL_MAP_TABLE            HEX: 0D34
+CONSTANT: GL_MAX_VIEWPORT_DIMS              HEX: 0D3A
+CONSTANT: GL_MAX_CLIENT_ATTRIB_STACK_DEPTH  HEX: 0D3B
 
 ! Gets
-: GL_ATTRIB_STACK_DEPTH             HEX: 0BB0 ; inline
-: GL_CLIENT_ATTRIB_STACK_DEPTH      HEX: 0BB1 ; inline
-: GL_COLOR_CLEAR_VALUE              HEX: 0C22 ; inline
-: GL_COLOR_WRITEMASK                HEX: 0C23 ; inline
-: GL_CURRENT_INDEX                  HEX: 0B01 ; inline
-: GL_CURRENT_COLOR                  HEX: 0B00 ; inline
-: GL_CURRENT_NORMAL                 HEX: 0B02 ; inline
-: GL_CURRENT_RASTER_COLOR           HEX: 0B04 ; inline
-: GL_CURRENT_RASTER_DISTANCE        HEX: 0B09 ; inline
-: GL_CURRENT_RASTER_INDEX           HEX: 0B05 ; inline
-: GL_CURRENT_RASTER_POSITION        HEX: 0B07 ; inline
-: GL_CURRENT_RASTER_TEXTURE_COORDS  HEX: 0B06 ; inline
-: GL_CURRENT_RASTER_POSITION_VALID  HEX: 0B08 ; inline
-: GL_CURRENT_TEXTURE_COORDS         HEX: 0B03 ; inline
-: GL_INDEX_CLEAR_VALUE              HEX: 0C20 ; inline
-: GL_INDEX_MODE                     HEX: 0C30 ; inline
-: GL_INDEX_WRITEMASK                HEX: 0C21 ; inline
-: GL_MODELVIEW_MATRIX               HEX: 0BA6 ; inline
-: GL_MODELVIEW_STACK_DEPTH          HEX: 0BA3 ; inline
-: GL_NAME_STACK_DEPTH               HEX: 0D70 ; inline
-: GL_PROJECTION_MATRIX              HEX: 0BA7 ; inline
-: GL_PROJECTION_STACK_DEPTH         HEX: 0BA4 ; inline
-: GL_RENDER_MODE                    HEX: 0C40 ; inline
-: GL_RGBA_MODE                      HEX: 0C31 ; inline
-: GL_TEXTURE_MATRIX                 HEX: 0BA8 ; inline
-: GL_TEXTURE_STACK_DEPTH            HEX: 0BA5 ; inline
-: GL_VIEWPORT                       HEX: 0BA2 ; inline
+CONSTANT: GL_ATTRIB_STACK_DEPTH             HEX: 0BB0
+CONSTANT: GL_CLIENT_ATTRIB_STACK_DEPTH      HEX: 0BB1
+CONSTANT: GL_COLOR_CLEAR_VALUE              HEX: 0C22
+CONSTANT: GL_COLOR_WRITEMASK                HEX: 0C23
+CONSTANT: GL_CURRENT_INDEX                  HEX: 0B01
+CONSTANT: GL_CURRENT_COLOR                  HEX: 0B00
+CONSTANT: GL_CURRENT_NORMAL                 HEX: 0B02
+CONSTANT: GL_CURRENT_RASTER_COLOR           HEX: 0B04
+CONSTANT: GL_CURRENT_RASTER_DISTANCE        HEX: 0B09
+CONSTANT: GL_CURRENT_RASTER_INDEX           HEX: 0B05
+CONSTANT: GL_CURRENT_RASTER_POSITION        HEX: 0B07
+CONSTANT: GL_CURRENT_RASTER_TEXTURE_COORDS  HEX: 0B06
+CONSTANT: GL_CURRENT_RASTER_POSITION_VALID  HEX: 0B08
+CONSTANT: GL_CURRENT_TEXTURE_COORDS         HEX: 0B03
+CONSTANT: GL_INDEX_CLEAR_VALUE              HEX: 0C20
+CONSTANT: GL_INDEX_MODE                     HEX: 0C30
+CONSTANT: GL_INDEX_WRITEMASK                HEX: 0C21
+CONSTANT: GL_MODELVIEW_MATRIX               HEX: 0BA6
+CONSTANT: GL_MODELVIEW_STACK_DEPTH          HEX: 0BA3
+CONSTANT: GL_NAME_STACK_DEPTH               HEX: 0D70
+CONSTANT: GL_PROJECTION_MATRIX              HEX: 0BA7
+CONSTANT: GL_PROJECTION_STACK_DEPTH         HEX: 0BA4
+CONSTANT: GL_RENDER_MODE                    HEX: 0C40
+CONSTANT: GL_RGBA_MODE                      HEX: 0C31
+CONSTANT: GL_TEXTURE_MATRIX                 HEX: 0BA8
+CONSTANT: GL_TEXTURE_STACK_DEPTH            HEX: 0BA5
+CONSTANT: GL_VIEWPORT                       HEX: 0BA2
 
 ! Evaluators inline
-: GL_AUTO_NORMAL                    HEX: 0D80 ; inline
-: GL_MAP1_COLOR_4                   HEX: 0D90 ; inline
-: GL_MAP1_INDEX                     HEX: 0D91 ; inline
-: GL_MAP1_NORMAL                    HEX: 0D92 ; inline
-: GL_MAP1_TEXTURE_COORD_1           HEX: 0D93 ; inline
-: GL_MAP1_TEXTURE_COORD_2           HEX: 0D94 ; inline
-: GL_MAP1_TEXTURE_COORD_3           HEX: 0D95 ; inline
-: GL_MAP1_TEXTURE_COORD_4           HEX: 0D96 ; inline
-: GL_MAP1_VERTEX_3                  HEX: 0D97 ; inline
-: GL_MAP1_VERTEX_4                  HEX: 0D98 ; inline
-: GL_MAP2_COLOR_4                   HEX: 0DB0 ; inline
-: GL_MAP2_INDEX                     HEX: 0DB1 ; inline
-: GL_MAP2_NORMAL                    HEX: 0DB2 ; inline
-: GL_MAP2_TEXTURE_COORD_1           HEX: 0DB3 ; inline
-: GL_MAP2_TEXTURE_COORD_2           HEX: 0DB4 ; inline
-: GL_MAP2_TEXTURE_COORD_3           HEX: 0DB5 ; inline
-: GL_MAP2_TEXTURE_COORD_4           HEX: 0DB6 ; inline
-: GL_MAP2_VERTEX_3                  HEX: 0DB7 ; inline
-: GL_MAP2_VERTEX_4                  HEX: 0DB8 ; inline
-: GL_MAP1_GRID_DOMAIN               HEX: 0DD0 ; inline
-: GL_MAP1_GRID_SEGMENTS             HEX: 0DD1 ; inline
-: GL_MAP2_GRID_DOMAIN               HEX: 0DD2 ; inline
-: GL_MAP2_GRID_SEGMENTS             HEX: 0DD3 ; inline
-: GL_COEFF                          HEX: 0A00 ; inline
-: GL_DOMAIN                         HEX: 0A02 ; inline
-: GL_ORDER                          HEX: 0A01 ; inline
+CONSTANT: GL_AUTO_NORMAL                    HEX: 0D80
+CONSTANT: GL_MAP1_COLOR_4                   HEX: 0D90
+CONSTANT: GL_MAP1_INDEX                     HEX: 0D91
+CONSTANT: GL_MAP1_NORMAL                    HEX: 0D92
+CONSTANT: GL_MAP1_TEXTURE_COORD_1           HEX: 0D93
+CONSTANT: GL_MAP1_TEXTURE_COORD_2           HEX: 0D94
+CONSTANT: GL_MAP1_TEXTURE_COORD_3           HEX: 0D95
+CONSTANT: GL_MAP1_TEXTURE_COORD_4           HEX: 0D96
+CONSTANT: GL_MAP1_VERTEX_3                  HEX: 0D97
+CONSTANT: GL_MAP1_VERTEX_4                  HEX: 0D98
+CONSTANT: GL_MAP2_COLOR_4                   HEX: 0DB0
+CONSTANT: GL_MAP2_INDEX                     HEX: 0DB1
+CONSTANT: GL_MAP2_NORMAL                    HEX: 0DB2
+CONSTANT: GL_MAP2_TEXTURE_COORD_1           HEX: 0DB3
+CONSTANT: GL_MAP2_TEXTURE_COORD_2           HEX: 0DB4
+CONSTANT: GL_MAP2_TEXTURE_COORD_3           HEX: 0DB5
+CONSTANT: GL_MAP2_TEXTURE_COORD_4           HEX: 0DB6
+CONSTANT: GL_MAP2_VERTEX_3                  HEX: 0DB7
+CONSTANT: GL_MAP2_VERTEX_4                  HEX: 0DB8
+CONSTANT: GL_MAP1_GRID_DOMAIN               HEX: 0DD0
+CONSTANT: GL_MAP1_GRID_SEGMENTS             HEX: 0DD1
+CONSTANT: GL_MAP2_GRID_DOMAIN               HEX: 0DD2
+CONSTANT: GL_MAP2_GRID_SEGMENTS             HEX: 0DD3
+CONSTANT: GL_COEFF                          HEX: 0A00
+CONSTANT: GL_DOMAIN                         HEX: 0A02
+CONSTANT: GL_ORDER                          HEX: 0A01
 
 ! Hints inline
-: GL_FOG_HINT                       HEX: 0C54 ; inline
-: GL_LINE_SMOOTH_HINT               HEX: 0C52 ; inline
-: GL_PERSPECTIVE_CORRECTION_HINT    HEX: 0C50 ; inline
-: GL_POINT_SMOOTH_HINT              HEX: 0C51 ; inline
-: GL_POLYGON_SMOOTH_HINT            HEX: 0C53 ; inline
-: GL_DONT_CARE                      HEX: 1100 ; inline
-: GL_FASTEST                        HEX: 1101 ; inline
-: GL_NICEST                         HEX: 1102 ; inline
+CONSTANT: GL_FOG_HINT                       HEX: 0C54
+CONSTANT: GL_LINE_SMOOTH_HINT               HEX: 0C52
+CONSTANT: GL_PERSPECTIVE_CORRECTION_HINT    HEX: 0C50
+CONSTANT: GL_POINT_SMOOTH_HINT              HEX: 0C51
+CONSTANT: GL_POLYGON_SMOOTH_HINT            HEX: 0C53
+CONSTANT: GL_DONT_CARE                      HEX: 1100
+CONSTANT: GL_FASTEST                        HEX: 1101
+CONSTANT: GL_NICEST                         HEX: 1102
 
 ! Scissor box inline
-: GL_SCISSOR_TEST                   HEX: 0C11 ; inline
-: GL_SCISSOR_BOX                    HEX: 0C10 ; inline
+CONSTANT: GL_SCISSOR_TEST                   HEX: 0C11
+CONSTANT: GL_SCISSOR_BOX                    HEX: 0C10
 
 ! Pixel Mode / Transfer inline
-: GL_MAP_COLOR                      HEX: 0D10 ; inline
-: GL_MAP_STENCIL                    HEX: 0D11 ; inline
-: GL_INDEX_SHIFT                    HEX: 0D12 ; inline
-: GL_INDEX_OFFSET                   HEX: 0D13 ; inline
-: GL_RED_SCALE                      HEX: 0D14 ; inline
-: GL_RED_BIAS                       HEX: 0D15 ; inline
-: GL_GREEN_SCALE                    HEX: 0D18 ; inline
-: GL_GREEN_BIAS                     HEX: 0D19 ; inline
-: GL_BLUE_SCALE                     HEX: 0D1A ; inline
-: GL_BLUE_BIAS                      HEX: 0D1B ; inline
-: GL_ALPHA_SCALE                    HEX: 0D1C ; inline
-: GL_ALPHA_BIAS                     HEX: 0D1D ; inline
-: GL_DEPTH_SCALE                    HEX: 0D1E ; inline
-: GL_DEPTH_BIAS                     HEX: 0D1F ; inline
-: GL_PIXEL_MAP_S_TO_S_SIZE          HEX: 0CB1 ; inline
-: GL_PIXEL_MAP_I_TO_I_SIZE          HEX: 0CB0 ; inline
-: GL_PIXEL_MAP_I_TO_R_SIZE          HEX: 0CB2 ; inline
-: GL_PIXEL_MAP_I_TO_G_SIZE          HEX: 0CB3 ; inline
-: GL_PIXEL_MAP_I_TO_B_SIZE          HEX: 0CB4 ; inline
-: GL_PIXEL_MAP_I_TO_A_SIZE          HEX: 0CB5 ; inline
-: GL_PIXEL_MAP_R_TO_R_SIZE          HEX: 0CB6 ; inline
-: GL_PIXEL_MAP_G_TO_G_SIZE          HEX: 0CB7 ; inline
-: GL_PIXEL_MAP_B_TO_B_SIZE          HEX: 0CB8 ; inline
-: GL_PIXEL_MAP_A_TO_A_SIZE          HEX: 0CB9 ; inline
-: GL_PIXEL_MAP_S_TO_S               HEX: 0C71 ; inline
-: GL_PIXEL_MAP_I_TO_I               HEX: 0C70 ; inline
-: GL_PIXEL_MAP_I_TO_R               HEX: 0C72 ; inline
-: GL_PIXEL_MAP_I_TO_G               HEX: 0C73 ; inline
-: GL_PIXEL_MAP_I_TO_B               HEX: 0C74 ; inline
-: GL_PIXEL_MAP_I_TO_A               HEX: 0C75 ; inline
-: GL_PIXEL_MAP_R_TO_R               HEX: 0C76 ; inline
-: GL_PIXEL_MAP_G_TO_G               HEX: 0C77 ; inline
-: GL_PIXEL_MAP_B_TO_B               HEX: 0C78 ; inline
-: GL_PIXEL_MAP_A_TO_A               HEX: 0C79 ; inline
-: GL_PACK_ALIGNMENT                 HEX: 0D05 ; inline
-: GL_PACK_LSB_FIRST                 HEX: 0D01 ; inline
-: GL_PACK_ROW_LENGTH                HEX: 0D02 ; inline
-: GL_PACK_SKIP_PIXELS               HEX: 0D04 ; inline
-: GL_PACK_SKIP_ROWS                 HEX: 0D03 ; inline
-: GL_PACK_SWAP_BYTES                HEX: 0D00 ; inline
-: GL_UNPACK_ALIGNMENT               HEX: 0CF5 ; inline
-: GL_UNPACK_LSB_FIRST               HEX: 0CF1 ; inline
-: GL_UNPACK_ROW_LENGTH              HEX: 0CF2 ; inline
-: GL_UNPACK_SKIP_PIXELS             HEX: 0CF4 ; inline
-: GL_UNPACK_SKIP_ROWS               HEX: 0CF3 ; inline
-: GL_UNPACK_SWAP_BYTES              HEX: 0CF0 ; inline
-: GL_ZOOM_X                         HEX: 0D16 ; inline
-: GL_ZOOM_Y                         HEX: 0D17 ; inline
+CONSTANT: GL_MAP_COLOR                      HEX: 0D10
+CONSTANT: GL_MAP_STENCIL                    HEX: 0D11
+CONSTANT: GL_INDEX_SHIFT                    HEX: 0D12
+CONSTANT: GL_INDEX_OFFSET                   HEX: 0D13
+CONSTANT: GL_RED_SCALE                      HEX: 0D14
+CONSTANT: GL_RED_BIAS                       HEX: 0D15
+CONSTANT: GL_GREEN_SCALE                    HEX: 0D18
+CONSTANT: GL_GREEN_BIAS                     HEX: 0D19
+CONSTANT: GL_BLUE_SCALE                     HEX: 0D1A
+CONSTANT: GL_BLUE_BIAS                      HEX: 0D1B
+CONSTANT: GL_ALPHA_SCALE                    HEX: 0D1C
+CONSTANT: GL_ALPHA_BIAS                     HEX: 0D1D
+CONSTANT: GL_DEPTH_SCALE                    HEX: 0D1E
+CONSTANT: GL_DEPTH_BIAS                     HEX: 0D1F
+CONSTANT: GL_PIXEL_MAP_S_TO_S_SIZE          HEX: 0CB1
+CONSTANT: GL_PIXEL_MAP_I_TO_I_SIZE          HEX: 0CB0
+CONSTANT: GL_PIXEL_MAP_I_TO_R_SIZE          HEX: 0CB2
+CONSTANT: GL_PIXEL_MAP_I_TO_G_SIZE          HEX: 0CB3
+CONSTANT: GL_PIXEL_MAP_I_TO_B_SIZE          HEX: 0CB4
+CONSTANT: GL_PIXEL_MAP_I_TO_A_SIZE          HEX: 0CB5
+CONSTANT: GL_PIXEL_MAP_R_TO_R_SIZE          HEX: 0CB6
+CONSTANT: GL_PIXEL_MAP_G_TO_G_SIZE          HEX: 0CB7
+CONSTANT: GL_PIXEL_MAP_B_TO_B_SIZE          HEX: 0CB8
+CONSTANT: GL_PIXEL_MAP_A_TO_A_SIZE          HEX: 0CB9
+CONSTANT: GL_PIXEL_MAP_S_TO_S               HEX: 0C71
+CONSTANT: GL_PIXEL_MAP_I_TO_I               HEX: 0C70
+CONSTANT: GL_PIXEL_MAP_I_TO_R               HEX: 0C72
+CONSTANT: GL_PIXEL_MAP_I_TO_G               HEX: 0C73
+CONSTANT: GL_PIXEL_MAP_I_TO_B               HEX: 0C74
+CONSTANT: GL_PIXEL_MAP_I_TO_A               HEX: 0C75
+CONSTANT: GL_PIXEL_MAP_R_TO_R               HEX: 0C76
+CONSTANT: GL_PIXEL_MAP_G_TO_G               HEX: 0C77
+CONSTANT: GL_PIXEL_MAP_B_TO_B               HEX: 0C78
+CONSTANT: GL_PIXEL_MAP_A_TO_A               HEX: 0C79
+CONSTANT: GL_PACK_ALIGNMENT                 HEX: 0D05
+CONSTANT: GL_PACK_LSB_FIRST                 HEX: 0D01
+CONSTANT: GL_PACK_ROW_LENGTH                HEX: 0D02
+CONSTANT: GL_PACK_SKIP_PIXELS               HEX: 0D04
+CONSTANT: GL_PACK_SKIP_ROWS                 HEX: 0D03
+CONSTANT: GL_PACK_SWAP_BYTES                HEX: 0D00
+CONSTANT: GL_UNPACK_ALIGNMENT               HEX: 0CF5
+CONSTANT: GL_UNPACK_LSB_FIRST               HEX: 0CF1
+CONSTANT: GL_UNPACK_ROW_LENGTH              HEX: 0CF2
+CONSTANT: GL_UNPACK_SKIP_PIXELS             HEX: 0CF4
+CONSTANT: GL_UNPACK_SKIP_ROWS               HEX: 0CF3
+CONSTANT: GL_UNPACK_SWAP_BYTES              HEX: 0CF0
+CONSTANT: GL_ZOOM_X                         HEX: 0D16
+CONSTANT: GL_ZOOM_Y                         HEX: 0D17
 
 ! Texture mapping inline
-: GL_TEXTURE_ENV                    HEX: 2300 ; inline
-: GL_TEXTURE_ENV_MODE               HEX: 2200 ; inline
-: GL_TEXTURE_1D                     HEX: 0DE0 ; inline
-: GL_TEXTURE_2D                     HEX: 0DE1 ; inline
-: GL_TEXTURE_WRAP_S                 HEX: 2802 ; inline
-: GL_TEXTURE_WRAP_T                 HEX: 2803 ; inline
-: GL_TEXTURE_MAG_FILTER             HEX: 2800 ; inline
-: GL_TEXTURE_MIN_FILTER             HEX: 2801 ; inline
-: GL_TEXTURE_ENV_COLOR              HEX: 2201 ; inline
-: GL_TEXTURE_GEN_S                  HEX: 0C60 ; inline
-: GL_TEXTURE_GEN_T                  HEX: 0C61 ; inline
-: GL_TEXTURE_GEN_MODE               HEX: 2500 ; inline
-: GL_TEXTURE_BORDER_COLOR           HEX: 1004 ; inline
-: GL_TEXTURE_WIDTH                  HEX: 1000 ; inline
-: GL_TEXTURE_HEIGHT                 HEX: 1001 ; inline
-: GL_TEXTURE_BORDER                 HEX: 1005 ; inline
-: GL_TEXTURE_COMPONENTS             HEX: 1003 ; inline
-: GL_TEXTURE_RED_SIZE               HEX: 805C ; inline
-: GL_TEXTURE_GREEN_SIZE             HEX: 805D ; inline
-: GL_TEXTURE_BLUE_SIZE              HEX: 805E ; inline
-: GL_TEXTURE_ALPHA_SIZE             HEX: 805F ; inline
-: GL_TEXTURE_LUMINANCE_SIZE         HEX: 8060 ; inline
-: GL_TEXTURE_INTENSITY_SIZE         HEX: 8061 ; inline
-: GL_NEAREST_MIPMAP_NEAREST         HEX: 2700 ; inline
-: GL_NEAREST_MIPMAP_LINEAR          HEX: 2702 ; inline
-: GL_LINEAR_MIPMAP_NEAREST          HEX: 2701 ; inline
-: GL_LINEAR_MIPMAP_LINEAR           HEX: 2703 ; inline
-: GL_OBJECT_LINEAR                  HEX: 2401 ; inline
-: GL_OBJECT_PLANE                   HEX: 2501 ; inline
-: GL_EYE_LINEAR                     HEX: 2400 ; inline
-: GL_EYE_PLANE                      HEX: 2502 ; inline
-: GL_SPHERE_MAP                     HEX: 2402 ; inline
-: GL_DECAL                          HEX: 2101 ; inline
-: GL_MODULATE                       HEX: 2100 ; inline
-: GL_NEAREST                        HEX: 2600 ; inline
-: GL_REPEAT                         HEX: 2901 ; inline
-: GL_CLAMP                          HEX: 2900 ; inline
-: GL_S                              HEX: 2000 ; inline
-: GL_T                              HEX: 2001 ; inline
-: GL_R                              HEX: 2002 ; inline
-: GL_Q                              HEX: 2003 ; inline
-: GL_TEXTURE_GEN_R                  HEX: 0C62 ; inline
-: GL_TEXTURE_GEN_Q                  HEX: 0C63 ; inline
+CONSTANT: GL_TEXTURE_ENV                    HEX: 2300
+CONSTANT: GL_TEXTURE_ENV_MODE               HEX: 2200
+CONSTANT: GL_TEXTURE_1D                     HEX: 0DE0
+CONSTANT: GL_TEXTURE_2D                     HEX: 0DE1
+CONSTANT: GL_TEXTURE_WRAP_S                 HEX: 2802
+CONSTANT: GL_TEXTURE_WRAP_T                 HEX: 2803
+CONSTANT: GL_TEXTURE_MAG_FILTER             HEX: 2800
+CONSTANT: GL_TEXTURE_MIN_FILTER             HEX: 2801
+CONSTANT: GL_TEXTURE_ENV_COLOR              HEX: 2201
+CONSTANT: GL_TEXTURE_GEN_S                  HEX: 0C60
+CONSTANT: GL_TEXTURE_GEN_T                  HEX: 0C61
+CONSTANT: GL_TEXTURE_GEN_MODE               HEX: 2500
+CONSTANT: GL_TEXTURE_BORDER_COLOR           HEX: 1004
+CONSTANT: GL_TEXTURE_WIDTH                  HEX: 1000
+CONSTANT: GL_TEXTURE_HEIGHT                 HEX: 1001
+CONSTANT: GL_TEXTURE_BORDER                 HEX: 1005
+CONSTANT: GL_TEXTURE_COMPONENTS             HEX: 1003
+CONSTANT: GL_TEXTURE_RED_SIZE               HEX: 805C
+CONSTANT: GL_TEXTURE_GREEN_SIZE             HEX: 805D
+CONSTANT: GL_TEXTURE_BLUE_SIZE              HEX: 805E
+CONSTANT: GL_TEXTURE_ALPHA_SIZE             HEX: 805F
+CONSTANT: GL_TEXTURE_LUMINANCE_SIZE         HEX: 8060
+CONSTANT: GL_TEXTURE_INTENSITY_SIZE         HEX: 8061
+CONSTANT: GL_NEAREST_MIPMAP_NEAREST         HEX: 2700
+CONSTANT: GL_NEAREST_MIPMAP_LINEAR          HEX: 2702
+CONSTANT: GL_LINEAR_MIPMAP_NEAREST          HEX: 2701
+CONSTANT: GL_LINEAR_MIPMAP_LINEAR           HEX: 2703
+CONSTANT: GL_OBJECT_LINEAR                  HEX: 2401
+CONSTANT: GL_OBJECT_PLANE                   HEX: 2501
+CONSTANT: GL_EYE_LINEAR                     HEX: 2400
+CONSTANT: GL_EYE_PLANE                      HEX: 2502
+CONSTANT: GL_SPHERE_MAP                     HEX: 2402
+CONSTANT: GL_DECAL                          HEX: 2101
+CONSTANT: GL_MODULATE                       HEX: 2100
+CONSTANT: GL_NEAREST                        HEX: 2600
+CONSTANT: GL_REPEAT                         HEX: 2901
+CONSTANT: GL_CLAMP                          HEX: 2900
+CONSTANT: GL_S                              HEX: 2000
+CONSTANT: GL_T                              HEX: 2001
+CONSTANT: GL_R                              HEX: 2002
+CONSTANT: GL_Q                              HEX: 2003
+CONSTANT: GL_TEXTURE_GEN_R                  HEX: 0C62
+CONSTANT: GL_TEXTURE_GEN_Q                  HEX: 0C63
 
 ! Utility inline
-: GL_VENDOR                         HEX: 1F00 ; inline
-: GL_RENDERER                       HEX: 1F01 ; inline
-: GL_VERSION                        HEX: 1F02 ; inline
-: GL_EXTENSIONS                     HEX: 1F03 ; inline
+CONSTANT: GL_VENDOR                         HEX: 1F00
+CONSTANT: GL_RENDERER                       HEX: 1F01
+CONSTANT: GL_VERSION                        HEX: 1F02
+CONSTANT: GL_EXTENSIONS                     HEX: 1F03
 
 ! Errors inline
-: GL_NO_ERROR                       HEX:    0 ; inline
-: GL_INVALID_VALUE                  HEX: 0501 ; inline
-: GL_INVALID_ENUM                   HEX: 0500 ; inline
-: GL_INVALID_OPERATION              HEX: 0502 ; inline
-: GL_STACK_OVERFLOW                 HEX: 0503 ; inline
-: GL_STACK_UNDERFLOW                HEX: 0504 ; inline
-: GL_OUT_OF_MEMORY                  HEX: 0505 ; inline
+CONSTANT: GL_NO_ERROR                       HEX:    0
+CONSTANT: GL_INVALID_VALUE                  HEX: 0501
+CONSTANT: GL_INVALID_ENUM                   HEX: 0500
+CONSTANT: GL_INVALID_OPERATION              HEX: 0502
+CONSTANT: GL_STACK_OVERFLOW                 HEX: 0503
+CONSTANT: GL_STACK_UNDERFLOW                HEX: 0504
+CONSTANT: GL_OUT_OF_MEMORY                  HEX: 0505
 
 ! glPush/PopAttrib bits
-: GL_CURRENT_BIT                    HEX: 00000001 ; inline
-: GL_POINT_BIT                      HEX: 00000002 ; inline
-: GL_LINE_BIT                       HEX: 00000004 ; inline
-: GL_POLYGON_BIT                    HEX: 00000008 ; inline
-: GL_POLYGON_STIPPLE_BIT            HEX: 00000010 ; inline
-: GL_PIXEL_MODE_BIT                 HEX: 00000020 ; inline
-: GL_LIGHTING_BIT                   HEX: 00000040 ; inline
-: GL_FOG_BIT                        HEX: 00000080 ; inline
-: GL_DEPTH_BUFFER_BIT               HEX: 00000100 ; inline
-: GL_ACCUM_BUFFER_BIT               HEX: 00000200 ; inline
-: GL_STENCIL_BUFFER_BIT             HEX: 00000400 ; inline
-: GL_VIEWPORT_BIT                   HEX: 00000800 ; inline
-: GL_TRANSFORM_BIT                  HEX: 00001000 ; inline
-: GL_ENABLE_BIT                     HEX: 00002000 ; inline
-: GL_COLOR_BUFFER_BIT               HEX: 00004000 ; inline
-: GL_HINT_BIT                       HEX: 00008000 ; inline
-: GL_EVAL_BIT                       HEX: 00010000 ; inline
-: GL_LIST_BIT                       HEX: 00020000 ; inline
-: GL_TEXTURE_BIT                    HEX: 00040000 ; inline
-: GL_SCISSOR_BIT                    HEX: 00080000 ; inline
-: GL_ALL_ATTRIB_BITS                HEX: 000FFFFF ; inline
+CONSTANT: GL_CURRENT_BIT                    HEX: 00000001
+CONSTANT: GL_POINT_BIT                      HEX: 00000002
+CONSTANT: GL_LINE_BIT                       HEX: 00000004
+CONSTANT: GL_POLYGON_BIT                    HEX: 00000008
+CONSTANT: GL_POLYGON_STIPPLE_BIT            HEX: 00000010
+CONSTANT: GL_PIXEL_MODE_BIT                 HEX: 00000020
+CONSTANT: GL_LIGHTING_BIT                   HEX: 00000040
+CONSTANT: GL_FOG_BIT                        HEX: 00000080
+CONSTANT: GL_DEPTH_BUFFER_BIT               HEX: 00000100
+CONSTANT: GL_ACCUM_BUFFER_BIT               HEX: 00000200
+CONSTANT: GL_STENCIL_BUFFER_BIT             HEX: 00000400
+CONSTANT: GL_VIEWPORT_BIT                   HEX: 00000800
+CONSTANT: GL_TRANSFORM_BIT                  HEX: 00001000
+CONSTANT: GL_ENABLE_BIT                     HEX: 00002000
+CONSTANT: GL_COLOR_BUFFER_BIT               HEX: 00004000
+CONSTANT: GL_HINT_BIT                       HEX: 00008000
+CONSTANT: GL_EVAL_BIT                       HEX: 00010000
+CONSTANT: GL_LIST_BIT                       HEX: 00020000
+CONSTANT: GL_TEXTURE_BIT                    HEX: 00040000
+CONSTANT: GL_SCISSOR_BIT                    HEX: 00080000
+CONSTANT: GL_ALL_ATTRIB_BITS                HEX: 000FFFFF
 
 ! OpenGL 1.1
-: GL_PROXY_TEXTURE_1D               HEX: 8063 ; inline
-: GL_PROXY_TEXTURE_2D               HEX: 8064 ; inline
-: GL_TEXTURE_PRIORITY               HEX: 8066 ; inline
-: GL_TEXTURE_RESIDENT               HEX: 8067 ; inline
-: GL_TEXTURE_BINDING_1D             HEX: 8068 ; inline
-: GL_TEXTURE_BINDING_2D             HEX: 8069 ; inline
-: GL_TEXTURE_INTERNAL_FORMAT        HEX: 1003 ; inline
-: GL_ALPHA4                         HEX: 803B ; inline
-: GL_ALPHA8                         HEX: 803C ; inline
-: GL_ALPHA12                        HEX: 803D ; inline
-: GL_ALPHA16                        HEX: 803E ; inline
-: GL_LUMINANCE4                     HEX: 803F ; inline
-: GL_LUMINANCE8                     HEX: 8040 ; inline
-: GL_LUMINANCE12                    HEX: 8041 ; inline
-: GL_LUMINANCE16                    HEX: 8042 ; inline
-: GL_LUMINANCE4_ALPHA4              HEX: 8043 ; inline
-: GL_LUMINANCE6_ALPHA2              HEX: 8044 ; inline
-: GL_LUMINANCE8_ALPHA8              HEX: 8045 ; inline
-: GL_LUMINANCE12_ALPHA4             HEX: 8046 ; inline
-: GL_LUMINANCE12_ALPHA12            HEX: 8047 ; inline
-: GL_LUMINANCE16_ALPHA16            HEX: 8048 ; inline
-: GL_INTENSITY                      HEX: 8049 ; inline
-: GL_INTENSITY4                     HEX: 804A ; inline
-: GL_INTENSITY8                     HEX: 804B ; inline
-: GL_INTENSITY12                    HEX: 804C ; inline
-: GL_INTENSITY16                    HEX: 804D ; inline
-: GL_R3_G3_B2                       HEX: 2A10 ; inline
-: GL_RGB4                           HEX: 804F ; inline
-: GL_RGB5                           HEX: 8050 ; inline
-: GL_RGB8                           HEX: 8051 ; inline
-: GL_RGB10                          HEX: 8052 ; inline
-: GL_RGB12                          HEX: 8053 ; inline
-: GL_RGB16                          HEX: 8054 ; inline
-: GL_RGBA2                          HEX: 8055 ; inline
-: GL_RGBA4                          HEX: 8056 ; inline
-: GL_RGB5_A1                        HEX: 8057 ; inline
-: GL_RGBA8                          HEX: 8058 ; inline
-: GL_RGB10_A2                       HEX: 8059 ; inline
-: GL_RGBA12                         HEX: 805A ; inline
-: GL_RGBA16                         HEX: 805B ; inline
-: GL_CLIENT_PIXEL_STORE_BIT         HEX: 00000001 ; inline
-: GL_CLIENT_VERTEX_ARRAY_BIT        HEX: 00000002 ; inline
-: GL_ALL_CLIENT_ATTRIB_BITS         HEX: FFFFFFFF ; inline
-: GL_CLIENT_ALL_ATTRIB_BITS         HEX: FFFFFFFF ; inline
+CONSTANT: GL_PROXY_TEXTURE_1D               HEX: 8063
+CONSTANT: GL_PROXY_TEXTURE_2D               HEX: 8064
+CONSTANT: GL_TEXTURE_PRIORITY               HEX: 8066
+CONSTANT: GL_TEXTURE_RESIDENT               HEX: 8067
+CONSTANT: GL_TEXTURE_BINDING_1D             HEX: 8068
+CONSTANT: GL_TEXTURE_BINDING_2D             HEX: 8069
+CONSTANT: GL_TEXTURE_INTERNAL_FORMAT        HEX: 1003
+CONSTANT: GL_ALPHA4                         HEX: 803B
+CONSTANT: GL_ALPHA8                         HEX: 803C
+CONSTANT: GL_ALPHA12                        HEX: 803D
+CONSTANT: GL_ALPHA16                        HEX: 803E
+CONSTANT: GL_LUMINANCE4                     HEX: 803F
+CONSTANT: GL_LUMINANCE8                     HEX: 8040
+CONSTANT: GL_LUMINANCE12                    HEX: 8041
+CONSTANT: GL_LUMINANCE16                    HEX: 8042
+CONSTANT: GL_LUMINANCE4_ALPHA4              HEX: 8043
+CONSTANT: GL_LUMINANCE6_ALPHA2              HEX: 8044
+CONSTANT: GL_LUMINANCE8_ALPHA8              HEX: 8045
+CONSTANT: GL_LUMINANCE12_ALPHA4             HEX: 8046
+CONSTANT: GL_LUMINANCE12_ALPHA12            HEX: 8047
+CONSTANT: GL_LUMINANCE16_ALPHA16            HEX: 8048
+CONSTANT: GL_INTENSITY                      HEX: 8049
+CONSTANT: GL_INTENSITY4                     HEX: 804A
+CONSTANT: GL_INTENSITY8                     HEX: 804B
+CONSTANT: GL_INTENSITY12                    HEX: 804C
+CONSTANT: GL_INTENSITY16                    HEX: 804D
+CONSTANT: GL_R3_G3_B2                       HEX: 2A10
+CONSTANT: GL_RGB4                           HEX: 804F
+CONSTANT: GL_RGB5                           HEX: 8050
+CONSTANT: GL_RGB8                           HEX: 8051
+CONSTANT: GL_RGB10                          HEX: 8052
+CONSTANT: GL_RGB12                          HEX: 8053
+CONSTANT: GL_RGB16                          HEX: 8054
+CONSTANT: GL_RGBA2                          HEX: 8055
+CONSTANT: GL_RGBA4                          HEX: 8056
+CONSTANT: GL_RGB5_A1                        HEX: 8057
+CONSTANT: GL_RGBA8                          HEX: 8058
+CONSTANT: GL_RGB10_A2                       HEX: 8059
+CONSTANT: GL_RGBA12                         HEX: 805A
+CONSTANT: GL_RGBA16                         HEX: 805B
+CONSTANT: GL_CLIENT_PIXEL_STORE_BIT         HEX: 00000001
+CONSTANT: GL_CLIENT_VERTEX_ARRAY_BIT        HEX: 00000002
+CONSTANT: GL_ALL_CLIENT_ATTRIB_BITS         HEX: FFFFFFFF
+CONSTANT: GL_CLIENT_ALL_ATTRIB_BITS         HEX: FFFFFFFF
 
 LIBRARY: gl
 
@@ -1123,47 +1119,47 @@ FUNCTION: void glPopName ( ) ;
 
 ! OpenGL 1.2
 
-: GL_SMOOTH_POINT_SIZE_RANGE HEX: 0B12 ; inline
-: GL_SMOOTH_POINT_SIZE_GRANULARITY HEX: 0B13 ; inline
-: GL_SMOOTH_LINE_WIDTH_RANGE HEX: 0B22 ; inline
-: GL_SMOOTH_LINE_WIDTH_GRANULARITY HEX: 0B23 ; inline
-: GL_UNSIGNED_BYTE_3_3_2 HEX: 8032 ; inline
-: GL_UNSIGNED_SHORT_4_4_4_4 HEX: 8033 ; inline
-: GL_UNSIGNED_SHORT_5_5_5_1 HEX: 8034 ; inline
-: GL_UNSIGNED_INT_8_8_8_8 HEX: 8035 ; inline
-: GL_UNSIGNED_INT_10_10_10_2 HEX: 8036 ; inline
-: GL_RESCALE_NORMAL HEX: 803A ; inline
-: GL_TEXTURE_BINDING_3D HEX: 806A ; inline
-: GL_PACK_SKIP_IMAGES HEX: 806B ; inline
-: GL_PACK_IMAGE_HEIGHT HEX: 806C ; inline
-: GL_UNPACK_SKIP_IMAGES HEX: 806D ; inline
-: GL_UNPACK_IMAGE_HEIGHT HEX: 806E ; inline
-: GL_TEXTURE_3D HEX: 806F ; inline
-: GL_PROXY_TEXTURE_3D HEX: 8070 ; inline
-: GL_TEXTURE_DEPTH HEX: 8071 ; inline
-: GL_TEXTURE_WRAP_R HEX: 8072 ; inline
-: GL_MAX_3D_TEXTURE_SIZE HEX: 8073 ; inline
-: GL_BGR HEX: 80E0 ; inline
-: GL_BGRA HEX: 80E1 ; inline
-: GL_MAX_ELEMENTS_VERTICES HEX: 80E8 ; inline
-: GL_MAX_ELEMENTS_INDICES HEX: 80E9 ; inline
-: GL_CLAMP_TO_EDGE HEX: 812F ; inline
-: GL_TEXTURE_MIN_LOD HEX: 813A ; inline
-: GL_TEXTURE_MAX_LOD HEX: 813B ; inline
-: GL_TEXTURE_BASE_LEVEL HEX: 813C ; inline
-: GL_TEXTURE_MAX_LEVEL HEX: 813D ; inline
-: GL_LIGHT_MODEL_COLOR_CONTROL HEX: 81F8 ; inline
-: GL_SINGLE_COLOR HEX: 81F9 ; inline
-: GL_SEPARATE_SPECULAR_COLOR HEX: 81FA ; inline
-: GL_UNSIGNED_BYTE_2_3_3_REV HEX: 8362 ; inline
-: GL_UNSIGNED_SHORT_5_6_5 HEX: 8363 ; inline
-: GL_UNSIGNED_SHORT_5_6_5_REV HEX: 8364 ; inline
-: GL_UNSIGNED_SHORT_4_4_4_4_REV HEX: 8365 ; inline
-: GL_UNSIGNED_SHORT_1_5_5_5_REV HEX: 8366 ; inline
-: GL_UNSIGNED_INT_8_8_8_8_REV HEX: 8367 ; inline
-: GL_UNSIGNED_INT_2_10_10_10_REV HEX: 8368 ; inline
-: GL_ALIASED_POINT_SIZE_RANGE HEX: 846D ; inline
-: GL_ALIASED_LINE_WIDTH_RANGE HEX: 846E ; inline
+CONSTANT: GL_SMOOTH_POINT_SIZE_RANGE HEX: 0B12
+CONSTANT: GL_SMOOTH_POINT_SIZE_GRANULARITY HEX: 0B13
+CONSTANT: GL_SMOOTH_LINE_WIDTH_RANGE HEX: 0B22
+CONSTANT: GL_SMOOTH_LINE_WIDTH_GRANULARITY HEX: 0B23
+CONSTANT: GL_UNSIGNED_BYTE_3_3_2 HEX: 8032
+CONSTANT: GL_UNSIGNED_SHORT_4_4_4_4 HEX: 8033
+CONSTANT: GL_UNSIGNED_SHORT_5_5_5_1 HEX: 8034
+CONSTANT: GL_UNSIGNED_INT_8_8_8_8 HEX: 8035
+CONSTANT: GL_UNSIGNED_INT_10_10_10_2 HEX: 8036
+CONSTANT: GL_RESCALE_NORMAL HEX: 803A
+CONSTANT: GL_TEXTURE_BINDING_3D HEX: 806A
+CONSTANT: GL_PACK_SKIP_IMAGES HEX: 806B
+CONSTANT: GL_PACK_IMAGE_HEIGHT HEX: 806C
+CONSTANT: GL_UNPACK_SKIP_IMAGES HEX: 806D
+CONSTANT: GL_UNPACK_IMAGE_HEIGHT HEX: 806E
+CONSTANT: GL_TEXTURE_3D HEX: 806F
+CONSTANT: GL_PROXY_TEXTURE_3D HEX: 8070
+CONSTANT: GL_TEXTURE_DEPTH HEX: 8071
+CONSTANT: GL_TEXTURE_WRAP_R HEX: 8072
+CONSTANT: GL_MAX_3D_TEXTURE_SIZE HEX: 8073
+CONSTANT: GL_BGR HEX: 80E0
+CONSTANT: GL_BGRA HEX: 80E1
+CONSTANT: GL_MAX_ELEMENTS_VERTICES HEX: 80E8
+CONSTANT: GL_MAX_ELEMENTS_INDICES HEX: 80E9
+CONSTANT: GL_CLAMP_TO_EDGE HEX: 812F
+CONSTANT: GL_TEXTURE_MIN_LOD HEX: 813A
+CONSTANT: GL_TEXTURE_MAX_LOD HEX: 813B
+CONSTANT: GL_TEXTURE_BASE_LEVEL HEX: 813C
+CONSTANT: GL_TEXTURE_MAX_LEVEL HEX: 813D
+CONSTANT: GL_LIGHT_MODEL_COLOR_CONTROL HEX: 81F8
+CONSTANT: GL_SINGLE_COLOR HEX: 81F9
+CONSTANT: GL_SEPARATE_SPECULAR_COLOR HEX: 81FA
+CONSTANT: GL_UNSIGNED_BYTE_2_3_3_REV HEX: 8362
+CONSTANT: GL_UNSIGNED_SHORT_5_6_5 HEX: 8363
+CONSTANT: GL_UNSIGNED_SHORT_5_6_5_REV HEX: 8364
+CONSTANT: GL_UNSIGNED_SHORT_4_4_4_4_REV HEX: 8365
+CONSTANT: GL_UNSIGNED_SHORT_1_5_5_5_REV HEX: 8366
+CONSTANT: GL_UNSIGNED_INT_8_8_8_8_REV HEX: 8367
+CONSTANT: GL_UNSIGNED_INT_2_10_10_10_REV HEX: 8368
+CONSTANT: GL_ALIASED_POINT_SIZE_RANGE HEX: 846D
+CONSTANT: GL_ALIASED_LINE_WIDTH_RANGE HEX: 846E
 
 GL-FUNCTION: void glCopyTexSubImage3D { glCopyTexSubImage3DEXT } ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ) ;
 GL-FUNCTION: void glDrawRangeElements { glDrawRangeElementsEXT } ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid* indices ) ;
@@ -1174,102 +1170,102 @@ GL-FUNCTION: void glTexSubImage3D { glTexSubImage3DEXT } ( GLenum target, GLint
 ! OpenGL 1.3
 
 
-: GL_MULTISAMPLE HEX: 809D ; inline
-: GL_SAMPLE_ALPHA_TO_COVERAGE HEX: 809E ; inline
-: GL_SAMPLE_ALPHA_TO_ONE HEX: 809F ; inline
-: GL_SAMPLE_COVERAGE HEX: 80A0 ; inline
-: GL_SAMPLE_BUFFERS HEX: 80A8 ; inline
-: GL_SAMPLES HEX: 80A9 ; inline
-: GL_SAMPLE_COVERAGE_VALUE HEX: 80AA ; inline
-: GL_SAMPLE_COVERAGE_INVERT HEX: 80AB ; inline
-: GL_CLAMP_TO_BORDER HEX: 812D ; inline
-: GL_TEXTURE0 HEX: 84C0 ; inline
-: GL_TEXTURE1 HEX: 84C1 ; inline
-: GL_TEXTURE2 HEX: 84C2 ; inline
-: GL_TEXTURE3 HEX: 84C3 ; inline
-: GL_TEXTURE4 HEX: 84C4 ; inline
-: GL_TEXTURE5 HEX: 84C5 ; inline
-: GL_TEXTURE6 HEX: 84C6 ; inline
-: GL_TEXTURE7 HEX: 84C7 ; inline
-: GL_TEXTURE8 HEX: 84C8 ; inline
-: GL_TEXTURE9 HEX: 84C9 ; inline
-: GL_TEXTURE10 HEX: 84CA ; inline
-: GL_TEXTURE11 HEX: 84CB ; inline
-: GL_TEXTURE12 HEX: 84CC ; inline
-: GL_TEXTURE13 HEX: 84CD ; inline
-: GL_TEXTURE14 HEX: 84CE ; inline
-: GL_TEXTURE15 HEX: 84CF ; inline
-: GL_TEXTURE16 HEX: 84D0 ; inline
-: GL_TEXTURE17 HEX: 84D1 ; inline
-: GL_TEXTURE18 HEX: 84D2 ; inline
-: GL_TEXTURE19 HEX: 84D3 ; inline
-: GL_TEXTURE20 HEX: 84D4 ; inline
-: GL_TEXTURE21 HEX: 84D5 ; inline
-: GL_TEXTURE22 HEX: 84D6 ; inline
-: GL_TEXTURE23 HEX: 84D7 ; inline
-: GL_TEXTURE24 HEX: 84D8 ; inline
-: GL_TEXTURE25 HEX: 84D9 ; inline
-: GL_TEXTURE26 HEX: 84DA ; inline
-: GL_TEXTURE27 HEX: 84DB ; inline
-: GL_TEXTURE28 HEX: 84DC ; inline
-: GL_TEXTURE29 HEX: 84DD ; inline
-: GL_TEXTURE30 HEX: 84DE ; inline
-: GL_TEXTURE31 HEX: 84DF ; inline
-: GL_ACTIVE_TEXTURE HEX: 84E0 ; inline
-: GL_CLIENT_ACTIVE_TEXTURE HEX: 84E1 ; inline
-: GL_MAX_TEXTURE_UNITS HEX: 84E2 ; inline
-: GL_TRANSPOSE_MODELVIEW_MATRIX HEX: 84E3 ; inline
-: GL_TRANSPOSE_PROJECTION_MATRIX HEX: 84E4 ; inline
-: GL_TRANSPOSE_TEXTURE_MATRIX HEX: 84E5 ; inline
-: GL_TRANSPOSE_COLOR_MATRIX HEX: 84E6 ; inline
-: GL_SUBTRACT HEX: 84E7 ; inline
-: GL_COMPRESSED_ALPHA HEX: 84E9 ; inline
-: GL_COMPRESSED_LUMINANCE HEX: 84EA ; inline
-: GL_COMPRESSED_LUMINANCE_ALPHA HEX: 84EB ; inline
-: GL_COMPRESSED_INTENSITY HEX: 84EC ; inline
-: GL_COMPRESSED_RGB HEX: 84ED ; inline
-: GL_COMPRESSED_RGBA HEX: 84EE ; inline
-: GL_TEXTURE_COMPRESSION_HINT HEX: 84EF ; inline
-: GL_NORMAL_MAP HEX: 8511 ; inline
-: GL_REFLECTION_MAP HEX: 8512 ; inline
-: GL_TEXTURE_CUBE_MAP HEX: 8513 ; inline
-: GL_TEXTURE_BINDING_CUBE_MAP HEX: 8514 ; inline
-: GL_TEXTURE_CUBE_MAP_POSITIVE_X HEX: 8515 ; inline
-: GL_TEXTURE_CUBE_MAP_NEGATIVE_X HEX: 8516 ; inline
-: GL_TEXTURE_CUBE_MAP_POSITIVE_Y HEX: 8517 ; inline
-: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y HEX: 8518 ; inline
-: GL_TEXTURE_CUBE_MAP_POSITIVE_Z HEX: 8519 ; inline
-: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z HEX: 851A ; inline
-: GL_PROXY_TEXTURE_CUBE_MAP HEX: 851B ; inline
-: GL_MAX_CUBE_MAP_TEXTURE_SIZE HEX: 851C ; inline
-: GL_COMBINE HEX: 8570 ; inline
-: GL_COMBINE_RGB HEX: 8571 ; inline
-: GL_COMBINE_ALPHA HEX: 8572 ; inline
-: GL_RGB_SCALE HEX: 8573 ; inline
-: GL_ADD_SIGNED HEX: 8574 ; inline
-: GL_INTERPOLATE HEX: 8575 ; inline
-: GL_CONSTANT HEX: 8576 ; inline
-: GL_PRIMARY_COLOR HEX: 8577 ; inline
-: GL_PREVIOUS HEX: 8578 ; inline
-: GL_SOURCE0_RGB HEX: 8580 ; inline
-: GL_SOURCE1_RGB HEX: 8581 ; inline
-: GL_SOURCE2_RGB HEX: 8582 ; inline
-: GL_SOURCE0_ALPHA HEX: 8588 ; inline
-: GL_SOURCE1_ALPHA HEX: 8589 ; inline
-: GL_SOURCE2_ALPHA HEX: 858A ; inline
-: GL_OPERAND0_RGB HEX: 8590 ; inline
-: GL_OPERAND1_RGB HEX: 8591 ; inline
-: GL_OPERAND2_RGB HEX: 8592 ; inline
-: GL_OPERAND0_ALPHA HEX: 8598 ; inline
-: GL_OPERAND1_ALPHA HEX: 8599 ; inline
-: GL_OPERAND2_ALPHA HEX: 859A ; inline
-: GL_TEXTURE_COMPRESSED_IMAGE_SIZE HEX: 86A0 ; inline
-: GL_TEXTURE_COMPRESSED HEX: 86A1 ; inline
-: GL_NUM_COMPRESSED_TEXTURE_FORMATS HEX: 86A2 ; inline
-: GL_COMPRESSED_TEXTURE_FORMATS HEX: 86A3 ; inline
-: GL_DOT3_RGB HEX: 86AE ; inline
-: GL_DOT3_RGBA HEX: 86AF ; inline
-: GL_MULTISAMPLE_BIT HEX: 20000000 ; inline
+CONSTANT: GL_MULTISAMPLE HEX: 809D
+CONSTANT: GL_SAMPLE_ALPHA_TO_COVERAGE HEX: 809E
+CONSTANT: GL_SAMPLE_ALPHA_TO_ONE HEX: 809F
+CONSTANT: GL_SAMPLE_COVERAGE HEX: 80A0
+CONSTANT: GL_SAMPLE_BUFFERS HEX: 80A8
+CONSTANT: GL_SAMPLES HEX: 80A9
+CONSTANT: GL_SAMPLE_COVERAGE_VALUE HEX: 80AA
+CONSTANT: GL_SAMPLE_COVERAGE_INVERT HEX: 80AB
+CONSTANT: GL_CLAMP_TO_BORDER HEX: 812D
+CONSTANT: GL_TEXTURE0 HEX: 84C0
+CONSTANT: GL_TEXTURE1 HEX: 84C1
+CONSTANT: GL_TEXTURE2 HEX: 84C2
+CONSTANT: GL_TEXTURE3 HEX: 84C3
+CONSTANT: GL_TEXTURE4 HEX: 84C4
+CONSTANT: GL_TEXTURE5 HEX: 84C5
+CONSTANT: GL_TEXTURE6 HEX: 84C6
+CONSTANT: GL_TEXTURE7 HEX: 84C7
+CONSTANT: GL_TEXTURE8 HEX: 84C8
+CONSTANT: GL_TEXTURE9 HEX: 84C9
+CONSTANT: GL_TEXTURE10 HEX: 84CA
+CONSTANT: GL_TEXTURE11 HEX: 84CB
+CONSTANT: GL_TEXTURE12 HEX: 84CC
+CONSTANT: GL_TEXTURE13 HEX: 84CD
+CONSTANT: GL_TEXTURE14 HEX: 84CE
+CONSTANT: GL_TEXTURE15 HEX: 84CF
+CONSTANT: GL_TEXTURE16 HEX: 84D0
+CONSTANT: GL_TEXTURE17 HEX: 84D1
+CONSTANT: GL_TEXTURE18 HEX: 84D2
+CONSTANT: GL_TEXTURE19 HEX: 84D3
+CONSTANT: GL_TEXTURE20 HEX: 84D4
+CONSTANT: GL_TEXTURE21 HEX: 84D5
+CONSTANT: GL_TEXTURE22 HEX: 84D6
+CONSTANT: GL_TEXTURE23 HEX: 84D7
+CONSTANT: GL_TEXTURE24 HEX: 84D8
+CONSTANT: GL_TEXTURE25 HEX: 84D9
+CONSTANT: GL_TEXTURE26 HEX: 84DA
+CONSTANT: GL_TEXTURE27 HEX: 84DB
+CONSTANT: GL_TEXTURE28 HEX: 84DC
+CONSTANT: GL_TEXTURE29 HEX: 84DD
+CONSTANT: GL_TEXTURE30 HEX: 84DE
+CONSTANT: GL_TEXTURE31 HEX: 84DF
+CONSTANT: GL_ACTIVE_TEXTURE HEX: 84E0
+CONSTANT: GL_CLIENT_ACTIVE_TEXTURE HEX: 84E1
+CONSTANT: GL_MAX_TEXTURE_UNITS HEX: 84E2
+CONSTANT: GL_TRANSPOSE_MODELVIEW_MATRIX HEX: 84E3
+CONSTANT: GL_TRANSPOSE_PROJECTION_MATRIX HEX: 84E4
+CONSTANT: GL_TRANSPOSE_TEXTURE_MATRIX HEX: 84E5
+CONSTANT: GL_TRANSPOSE_COLOR_MATRIX HEX: 84E6
+CONSTANT: GL_SUBTRACT HEX: 84E7
+CONSTANT: GL_COMPRESSED_ALPHA HEX: 84E9
+CONSTANT: GL_COMPRESSED_LUMINANCE HEX: 84EA
+CONSTANT: GL_COMPRESSED_LUMINANCE_ALPHA HEX: 84EB
+CONSTANT: GL_COMPRESSED_INTENSITY HEX: 84EC
+CONSTANT: GL_COMPRESSED_RGB HEX: 84ED
+CONSTANT: GL_COMPRESSED_RGBA HEX: 84EE
+CONSTANT: GL_TEXTURE_COMPRESSION_HINT HEX: 84EF
+CONSTANT: GL_NORMAL_MAP HEX: 8511
+CONSTANT: GL_REFLECTION_MAP HEX: 8512
+CONSTANT: GL_TEXTURE_CUBE_MAP HEX: 8513
+CONSTANT: GL_TEXTURE_BINDING_CUBE_MAP HEX: 8514
+CONSTANT: GL_TEXTURE_CUBE_MAP_POSITIVE_X HEX: 8515
+CONSTANT: GL_TEXTURE_CUBE_MAP_NEGATIVE_X HEX: 8516
+CONSTANT: GL_TEXTURE_CUBE_MAP_POSITIVE_Y HEX: 8517
+CONSTANT: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y HEX: 8518
+CONSTANT: GL_TEXTURE_CUBE_MAP_POSITIVE_Z HEX: 8519
+CONSTANT: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z HEX: 851A
+CONSTANT: GL_PROXY_TEXTURE_CUBE_MAP HEX: 851B
+CONSTANT: GL_MAX_CUBE_MAP_TEXTURE_SIZE HEX: 851C
+CONSTANT: GL_COMBINE HEX: 8570
+CONSTANT: GL_COMBINE_RGB HEX: 8571
+CONSTANT: GL_COMBINE_ALPHA HEX: 8572
+CONSTANT: GL_RGB_SCALE HEX: 8573
+CONSTANT: GL_ADD_SIGNED HEX: 8574
+CONSTANT: GL_INTERPOLATE HEX: 8575
+CONSTANT: GL_CONSTANT HEX: 8576
+CONSTANT: GL_PRIMARY_COLOR HEX: 8577
+CONSTANT: GL_PREVIOUS HEX: 8578
+CONSTANT: GL_SOURCE0_RGB HEX: 8580
+CONSTANT: GL_SOURCE1_RGB HEX: 8581
+CONSTANT: GL_SOURCE2_RGB HEX: 8582
+CONSTANT: GL_SOURCE0_ALPHA HEX: 8588
+CONSTANT: GL_SOURCE1_ALPHA HEX: 8589
+CONSTANT: GL_SOURCE2_ALPHA HEX: 858A
+CONSTANT: GL_OPERAND0_RGB HEX: 8590
+CONSTANT: GL_OPERAND1_RGB HEX: 8591
+CONSTANT: GL_OPERAND2_RGB HEX: 8592
+CONSTANT: GL_OPERAND0_ALPHA HEX: 8598
+CONSTANT: GL_OPERAND1_ALPHA HEX: 8599
+CONSTANT: GL_OPERAND2_ALPHA HEX: 859A
+CONSTANT: GL_TEXTURE_COMPRESSED_IMAGE_SIZE HEX: 86A0
+CONSTANT: GL_TEXTURE_COMPRESSED HEX: 86A1
+CONSTANT: GL_NUM_COMPRESSED_TEXTURE_FORMATS HEX: 86A2
+CONSTANT: GL_COMPRESSED_TEXTURE_FORMATS HEX: 86A3
+CONSTANT: GL_DOT3_RGB HEX: 86AE
+CONSTANT: GL_DOT3_RGBA HEX: 86AF
+CONSTANT: GL_MULTISAMPLE_BIT HEX: 20000000
 
 GL-FUNCTION: void glActiveTexture { glActiveTextureARB } ( GLenum texture ) ;
 GL-FUNCTION: void glClientActiveTexture { glClientActiveTextureARB } ( GLenum texture ) ;
@@ -1322,45 +1318,45 @@ GL-FUNCTION: void glSampleCoverage { glSampleCoverageARB } ( GLclampf value, GLb
 ! OpenGL 1.4
 
 
-: GL_BLEND_DST_RGB HEX: 80C8 ; inline
-: GL_BLEND_SRC_RGB HEX: 80C9 ; inline
-: GL_BLEND_DST_ALPHA HEX: 80CA ; inline
-: GL_BLEND_SRC_ALPHA HEX: 80CB ; inline
-: GL_POINT_SIZE_MIN HEX: 8126 ; inline
-: GL_POINT_SIZE_MAX HEX: 8127 ; inline
-: GL_POINT_FADE_THRESHOLD_SIZE HEX: 8128 ; inline
-: GL_POINT_DISTANCE_ATTENUATION HEX: 8129 ; inline
-: GL_GENERATE_MIPMAP HEX: 8191 ; inline
-: GL_GENERATE_MIPMAP_HINT HEX: 8192 ; inline
-: GL_DEPTH_COMPONENT16 HEX: 81A5 ; inline
-: GL_DEPTH_COMPONENT24 HEX: 81A6 ; inline
-: GL_DEPTH_COMPONENT32 HEX: 81A7 ; inline
-: GL_MIRRORED_REPEAT HEX: 8370 ; inline
-: GL_FOG_COORDINATE_SOURCE HEX: 8450 ; inline
-: GL_FOG_COORDINATE HEX: 8451 ; inline
-: GL_FRAGMENT_DEPTH HEX: 8452 ; inline
-: GL_CURRENT_FOG_COORDINATE HEX: 8453 ; inline
-: GL_FOG_COORDINATE_ARRAY_TYPE HEX: 8454 ; inline
-: GL_FOG_COORDINATE_ARRAY_STRIDE HEX: 8455 ; inline
-: GL_FOG_COORDINATE_ARRAY_POINTER HEX: 8456 ; inline
-: GL_FOG_COORDINATE_ARRAY HEX: 8457 ; inline
-: GL_COLOR_SUM HEX: 8458 ; inline
-: GL_CURRENT_SECONDARY_COLOR HEX: 8459 ; inline
-: GL_SECONDARY_COLOR_ARRAY_SIZE HEX: 845A ; inline
-: GL_SECONDARY_COLOR_ARRAY_TYPE HEX: 845B ; inline
-: GL_SECONDARY_COLOR_ARRAY_STRIDE HEX: 845C ; inline
-: GL_SECONDARY_COLOR_ARRAY_POINTER HEX: 845D ; inline
-: GL_SECONDARY_COLOR_ARRAY HEX: 845E ; inline
-: GL_MAX_TEXTURE_LOD_BIAS HEX: 84FD ; inline
-: GL_TEXTURE_FILTER_CONTROL HEX: 8500 ; inline
-: GL_TEXTURE_LOD_BIAS HEX: 8501 ; inline
-: GL_INCR_WRAP HEX: 8507 ; inline
-: GL_DECR_WRAP HEX: 8508 ; inline
-: GL_TEXTURE_DEPTH_SIZE HEX: 884A ; inline
-: GL_DEPTH_TEXTURE_MODE HEX: 884B ; inline
-: GL_TEXTURE_COMPARE_MODE HEX: 884C ; inline
-: GL_TEXTURE_COMPARE_FUNC HEX: 884D ; inline
-: GL_COMPARE_R_TO_TEXTURE HEX: 884E ; inline
+CONSTANT: GL_BLEND_DST_RGB HEX: 80C8
+CONSTANT: GL_BLEND_SRC_RGB HEX: 80C9
+CONSTANT: GL_BLEND_DST_ALPHA HEX: 80CA
+CONSTANT: GL_BLEND_SRC_ALPHA HEX: 80CB
+CONSTANT: GL_POINT_SIZE_MIN HEX: 8126
+CONSTANT: GL_POINT_SIZE_MAX HEX: 8127
+CONSTANT: GL_POINT_FADE_THRESHOLD_SIZE HEX: 8128
+CONSTANT: GL_POINT_DISTANCE_ATTENUATION HEX: 8129
+CONSTANT: GL_GENERATE_MIPMAP HEX: 8191
+CONSTANT: GL_GENERATE_MIPMAP_HINT HEX: 8192
+CONSTANT: GL_DEPTH_COMPONENT16 HEX: 81A5
+CONSTANT: GL_DEPTH_COMPONENT24 HEX: 81A6
+CONSTANT: GL_DEPTH_COMPONENT32 HEX: 81A7
+CONSTANT: GL_MIRRORED_REPEAT HEX: 8370
+CONSTANT: GL_FOG_COORDINATE_SOURCE HEX: 8450
+CONSTANT: GL_FOG_COORDINATE HEX: 8451
+CONSTANT: GL_FRAGMENT_DEPTH HEX: 8452
+CONSTANT: GL_CURRENT_FOG_COORDINATE HEX: 8453
+CONSTANT: GL_FOG_COORDINATE_ARRAY_TYPE HEX: 8454
+CONSTANT: GL_FOG_COORDINATE_ARRAY_STRIDE HEX: 8455
+CONSTANT: GL_FOG_COORDINATE_ARRAY_POINTER HEX: 8456
+CONSTANT: GL_FOG_COORDINATE_ARRAY HEX: 8457
+CONSTANT: GL_COLOR_SUM HEX: 8458
+CONSTANT: GL_CURRENT_SECONDARY_COLOR HEX: 8459
+CONSTANT: GL_SECONDARY_COLOR_ARRAY_SIZE HEX: 845A
+CONSTANT: GL_SECONDARY_COLOR_ARRAY_TYPE HEX: 845B
+CONSTANT: GL_SECONDARY_COLOR_ARRAY_STRIDE HEX: 845C
+CONSTANT: GL_SECONDARY_COLOR_ARRAY_POINTER HEX: 845D
+CONSTANT: GL_SECONDARY_COLOR_ARRAY HEX: 845E
+CONSTANT: GL_MAX_TEXTURE_LOD_BIAS HEX: 84FD
+CONSTANT: GL_TEXTURE_FILTER_CONTROL HEX: 8500
+CONSTANT: GL_TEXTURE_LOD_BIAS HEX: 8501
+CONSTANT: GL_INCR_WRAP HEX: 8507
+CONSTANT: GL_DECR_WRAP HEX: 8508
+CONSTANT: GL_TEXTURE_DEPTH_SIZE HEX: 884A
+CONSTANT: GL_DEPTH_TEXTURE_MODE HEX: 884B
+CONSTANT: GL_TEXTURE_COMPARE_MODE HEX: 884C
+CONSTANT: GL_TEXTURE_COMPARE_FUNC HEX: 884D
+CONSTANT: GL_COMPARE_R_TO_TEXTURE HEX: 884E
 
 GL-FUNCTION: void glBlendColor { glBlendColorEXT } ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) ;
 GL-FUNCTION: void glBlendEquation { glBlendEquationEXT } ( GLenum mode ) ;
@@ -1410,56 +1406,56 @@ GL-FUNCTION: void glWindowPos3sv { glWindowPos3svARB } ( GLshort* p ) ;
 
 ! OpenGL 1.5
 
-: GL_BUFFER_SIZE HEX: 8764 ; inline
-: GL_BUFFER_USAGE HEX: 8765 ; inline
-: GL_QUERY_COUNTER_BITS HEX: 8864 ; inline
-: GL_CURRENT_QUERY HEX: 8865 ; inline
-: GL_QUERY_RESULT HEX: 8866 ; inline
-: GL_QUERY_RESULT_AVAILABLE HEX: 8867 ; inline
-: GL_ARRAY_BUFFER HEX: 8892 ; inline
-: GL_ELEMENT_ARRAY_BUFFER HEX: 8893 ; inline
-: GL_ARRAY_BUFFER_BINDING HEX: 8894 ; inline
-: GL_ELEMENT_ARRAY_BUFFER_BINDING HEX: 8895 ; inline
-: GL_VERTEX_ARRAY_BUFFER_BINDING HEX: 8896 ; inline
-: GL_NORMAL_ARRAY_BUFFER_BINDING HEX: 8897 ; inline
-: GL_COLOR_ARRAY_BUFFER_BINDING HEX: 8898 ; inline
-: GL_INDEX_ARRAY_BUFFER_BINDING HEX: 8899 ; inline
-: GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING HEX: 889A ; inline
-: GL_EDGE_FLAG_ARRAY_BUFFER_BINDING HEX: 889B ; inline
-: GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING HEX: 889C ; inline
-: GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING HEX: 889D ; inline
-: GL_WEIGHT_ARRAY_BUFFER_BINDING HEX: 889E ; inline
-: GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING HEX: 889F ; inline
-: GL_READ_ONLY HEX: 88B8 ; inline
-: GL_WRITE_ONLY HEX: 88B9 ; inline
-: GL_READ_WRITE HEX: 88BA ; inline
-: GL_BUFFER_ACCESS HEX: 88BB ; inline
-: GL_BUFFER_MAPPED HEX: 88BC ; inline
-: GL_BUFFER_MAP_POINTER HEX: 88BD ; inline
-: GL_STREAM_DRAW HEX: 88E0 ; inline
-: GL_STREAM_READ HEX: 88E1 ; inline
-: GL_STREAM_COPY HEX: 88E2 ; inline
-: GL_STATIC_DRAW HEX: 88E4 ; inline
-: GL_STATIC_READ HEX: 88E5 ; inline
-: GL_STATIC_COPY HEX: 88E6 ; inline
-: GL_DYNAMIC_DRAW HEX: 88E8 ; inline
-: GL_DYNAMIC_READ HEX: 88E9 ; inline
-: GL_DYNAMIC_COPY HEX: 88EA ; inline
-: GL_SAMPLES_PASSED HEX: 8914 ; inline
-: GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE ; inline
-: GL_FOG_COORD GL_FOG_COORDINATE ; inline
-: GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY ; inline
-: GL_SRC0_RGB GL_SOURCE0_RGB ; inline
-: GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER ; inline
-: GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE ; inline
-: GL_SRC1_ALPHA GL_SOURCE1_ALPHA ; inline
-: GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE ; inline
-: GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE ; inline
-: GL_SRC0_ALPHA GL_SOURCE0_ALPHA ; inline
-: GL_SRC1_RGB GL_SOURCE1_RGB ; inline
-: GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING ; inline
-: GL_SRC2_ALPHA GL_SOURCE2_ALPHA ; inline
-: GL_SRC2_RGB GL_SOURCE2_RGB ; inline
+CONSTANT: GL_BUFFER_SIZE HEX: 8764
+CONSTANT: GL_BUFFER_USAGE HEX: 8765
+CONSTANT: GL_QUERY_COUNTER_BITS HEX: 8864
+CONSTANT: GL_CURRENT_QUERY HEX: 8865
+CONSTANT: GL_QUERY_RESULT HEX: 8866
+CONSTANT: GL_QUERY_RESULT_AVAILABLE HEX: 8867
+CONSTANT: GL_ARRAY_BUFFER HEX: 8892
+CONSTANT: GL_ELEMENT_ARRAY_BUFFER HEX: 8893
+CONSTANT: GL_ARRAY_BUFFER_BINDING HEX: 8894
+CONSTANT: GL_ELEMENT_ARRAY_BUFFER_BINDING HEX: 8895
+CONSTANT: GL_VERTEX_ARRAY_BUFFER_BINDING HEX: 8896
+CONSTANT: GL_NORMAL_ARRAY_BUFFER_BINDING HEX: 8897
+CONSTANT: GL_COLOR_ARRAY_BUFFER_BINDING HEX: 8898
+CONSTANT: GL_INDEX_ARRAY_BUFFER_BINDING HEX: 8899
+CONSTANT: GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING HEX: 889A
+CONSTANT: GL_EDGE_FLAG_ARRAY_BUFFER_BINDING HEX: 889B
+CONSTANT: GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING HEX: 889C
+CONSTANT: GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING HEX: 889D
+CONSTANT: GL_WEIGHT_ARRAY_BUFFER_BINDING HEX: 889E
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING HEX: 889F
+CONSTANT: GL_READ_ONLY HEX: 88B8
+CONSTANT: GL_WRITE_ONLY HEX: 88B9
+CONSTANT: GL_READ_WRITE HEX: 88BA
+CONSTANT: GL_BUFFER_ACCESS HEX: 88BB
+CONSTANT: GL_BUFFER_MAPPED HEX: 88BC
+CONSTANT: GL_BUFFER_MAP_POINTER HEX: 88BD
+CONSTANT: GL_STREAM_DRAW HEX: 88E0
+CONSTANT: GL_STREAM_READ HEX: 88E1
+CONSTANT: GL_STREAM_COPY HEX: 88E2
+CONSTANT: GL_STATIC_DRAW HEX: 88E4
+CONSTANT: GL_STATIC_READ HEX: 88E5
+CONSTANT: GL_STATIC_COPY HEX: 88E6
+CONSTANT: GL_DYNAMIC_DRAW HEX: 88E8
+CONSTANT: GL_DYNAMIC_READ HEX: 88E9
+CONSTANT: GL_DYNAMIC_COPY HEX: 88EA
+CONSTANT: GL_SAMPLES_PASSED HEX: 8914
+ALIAS: GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
+ALIAS: GL_FOG_COORD GL_FOG_COORDINATE
+ALIAS: GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
+ALIAS: GL_SRC0_RGB GL_SOURCE0_RGB
+ALIAS: GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
+ALIAS: GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
+ALIAS: GL_SRC1_ALPHA GL_SOURCE1_ALPHA
+ALIAS: GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
+ALIAS: GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
+ALIAS: GL_SRC0_ALPHA GL_SOURCE0_ALPHA
+ALIAS: GL_SRC1_RGB GL_SOURCE1_RGB
+ALIAS: GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
+ALIAS: GL_SRC2_ALPHA GL_SOURCE2_ALPHA
+ALIAS: GL_SRC2_RGB GL_SOURCE2_RGB
 
 TYPEDEF: ptrdiff_t GLsizeiptr
 TYPEDEF: ptrdiff_t GLintptr
@@ -1488,91 +1484,91 @@ GL-FUNCTION: GLboolean glUnmapBuffer { glUnmapBufferARB } ( GLenum target ) ;
 ! OpenGL 2.0
 
 
-: GL_VERTEX_ATTRIB_ARRAY_ENABLED HEX: 8622 ; inline
-: GL_VERTEX_ATTRIB_ARRAY_SIZE HEX: 8623 ; inline
-: GL_VERTEX_ATTRIB_ARRAY_STRIDE HEX: 8624 ; inline
-: GL_VERTEX_ATTRIB_ARRAY_TYPE HEX: 8625 ; inline
-: GL_CURRENT_VERTEX_ATTRIB HEX: 8626 ; inline
-: GL_VERTEX_PROGRAM_POINT_SIZE HEX: 8642 ; inline
-: GL_VERTEX_PROGRAM_TWO_SIDE HEX: 8643 ; inline
-: GL_VERTEX_ATTRIB_ARRAY_POINTER HEX: 8645 ; inline
-: GL_STENCIL_BACK_FUNC HEX: 8800 ; inline
-: GL_STENCIL_BACK_FAIL HEX: 8801 ; inline
-: GL_STENCIL_BACK_PASS_DEPTH_FAIL HEX: 8802 ; inline
-: GL_STENCIL_BACK_PASS_DEPTH_PASS HEX: 8803 ; inline
-: GL_MAX_DRAW_BUFFERS HEX: 8824 ; inline
-: GL_DRAW_BUFFER0 HEX: 8825 ; inline
-: GL_DRAW_BUFFER1 HEX: 8826 ; inline
-: GL_DRAW_BUFFER2 HEX: 8827 ; inline
-: GL_DRAW_BUFFER3 HEX: 8828 ; inline
-: GL_DRAW_BUFFER4 HEX: 8829 ; inline
-: GL_DRAW_BUFFER5 HEX: 882A ; inline
-: GL_DRAW_BUFFER6 HEX: 882B ; inline
-: GL_DRAW_BUFFER7 HEX: 882C ; inline
-: GL_DRAW_BUFFER8 HEX: 882D ; inline
-: GL_DRAW_BUFFER9 HEX: 882E ; inline
-: GL_DRAW_BUFFER10 HEX: 882F ; inline
-: GL_DRAW_BUFFER11 HEX: 8830 ; inline
-: GL_DRAW_BUFFER12 HEX: 8831 ; inline
-: GL_DRAW_BUFFER13 HEX: 8832 ; inline
-: GL_DRAW_BUFFER14 HEX: 8833 ; inline
-: GL_DRAW_BUFFER15 HEX: 8834 ; inline
-: GL_BLEND_EQUATION_ALPHA HEX: 883D ; inline
-: GL_POINT_SPRITE HEX: 8861 ; inline
-: GL_COORD_REPLACE HEX: 8862 ; inline
-: GL_MAX_VERTEX_ATTRIBS HEX: 8869 ; inline
-: GL_VERTEX_ATTRIB_ARRAY_NORMALIZED HEX: 886A ; inline
-: GL_MAX_TEXTURE_COORDS HEX: 8871 ; inline
-: GL_MAX_TEXTURE_IMAGE_UNITS HEX: 8872 ; inline
-: GL_FRAGMENT_SHADER HEX: 8B30 ; inline
-: GL_VERTEX_SHADER HEX: 8B31 ; inline
-: GL_MAX_FRAGMENT_UNIFORM_COMPONENTS HEX: 8B49 ; inline
-: GL_MAX_VERTEX_UNIFORM_COMPONENTS HEX: 8B4A ; inline
-: GL_MAX_VARYING_FLOATS HEX: 8B4B ; inline
-: GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS HEX: 8B4C ; inline
-: GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS HEX: 8B4D ; inline
-: GL_SHADER_TYPE HEX: 8B4F ; inline
-: GL_FLOAT_VEC2 HEX: 8B50 ; inline
-: GL_FLOAT_VEC3 HEX: 8B51 ; inline
-: GL_FLOAT_VEC4 HEX: 8B52 ; inline
-: GL_INT_VEC2 HEX: 8B53 ; inline
-: GL_INT_VEC3 HEX: 8B54 ; inline
-: GL_INT_VEC4 HEX: 8B55 ; inline
-: GL_BOOL HEX: 8B56 ; inline
-: GL_BOOL_VEC2 HEX: 8B57 ; inline
-: GL_BOOL_VEC3 HEX: 8B58 ; inline
-: GL_BOOL_VEC4 HEX: 8B59 ; inline
-: GL_FLOAT_MAT2 HEX: 8B5A ; inline
-: GL_FLOAT_MAT3 HEX: 8B5B ; inline
-: GL_FLOAT_MAT4 HEX: 8B5C ; inline
-: GL_SAMPLER_1D HEX: 8B5D ; inline
-: GL_SAMPLER_2D HEX: 8B5E ; inline
-: GL_SAMPLER_3D HEX: 8B5F ; inline
-: GL_SAMPLER_CUBE HEX: 8B60 ; inline
-: GL_SAMPLER_1D_SHADOW HEX: 8B61 ; inline
-: GL_SAMPLER_2D_SHADOW HEX: 8B62 ; inline
-: GL_DELETE_STATUS HEX: 8B80 ; inline
-: GL_COMPILE_STATUS HEX: 8B81 ; inline
-: GL_LINK_STATUS HEX: 8B82 ; inline
-: GL_VALIDATE_STATUS HEX: 8B83 ; inline
-: GL_INFO_LOG_LENGTH HEX: 8B84 ; inline
-: GL_ATTACHED_SHADERS HEX: 8B85 ; inline
-: GL_ACTIVE_UNIFORMS HEX: 8B86 ; inline
-: GL_ACTIVE_UNIFORM_MAX_LENGTH HEX: 8B87 ; inline
-: GL_SHADER_SOURCE_LENGTH HEX: 8B88 ; inline
-: GL_ACTIVE_ATTRIBUTES HEX: 8B89 ; inline
-: GL_ACTIVE_ATTRIBUTE_MAX_LENGTH HEX: 8B8A ; inline
-: GL_FRAGMENT_SHADER_DERIVATIVE_HINT HEX: 8B8B ; inline
-: GL_SHADING_LANGUAGE_VERSION HEX: 8B8C ; inline
-: GL_CURRENT_PROGRAM HEX: 8B8D ; inline
-: GL_POINT_SPRITE_COORD_ORIGIN HEX: 8CA0 ; inline
-: GL_LOWER_LEFT HEX: 8CA1 ; inline
-: GL_UPPER_LEFT HEX: 8CA2 ; inline
-: GL_STENCIL_BACK_REF HEX: 8CA3 ; inline
-: GL_STENCIL_BACK_VALUE_MASK HEX: 8CA4 ; inline
-: GL_STENCIL_BACK_WRITEMASK HEX: 8CA5 ; inline
-: GL_BLEND_EQUATION HEX: 8009 ; inline
-: GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION ; inline
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_ENABLED HEX: 8622
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_SIZE HEX: 8623
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_STRIDE HEX: 8624
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_TYPE HEX: 8625
+CONSTANT: GL_CURRENT_VERTEX_ATTRIB HEX: 8626
+CONSTANT: GL_VERTEX_PROGRAM_POINT_SIZE HEX: 8642
+CONSTANT: GL_VERTEX_PROGRAM_TWO_SIDE HEX: 8643
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_POINTER HEX: 8645
+CONSTANT: GL_STENCIL_BACK_FUNC HEX: 8800
+CONSTANT: GL_STENCIL_BACK_FAIL HEX: 8801
+CONSTANT: GL_STENCIL_BACK_PASS_DEPTH_FAIL HEX: 8802
+CONSTANT: GL_STENCIL_BACK_PASS_DEPTH_PASS HEX: 8803
+CONSTANT: GL_MAX_DRAW_BUFFERS HEX: 8824
+CONSTANT: GL_DRAW_BUFFER0 HEX: 8825
+CONSTANT: GL_DRAW_BUFFER1 HEX: 8826
+CONSTANT: GL_DRAW_BUFFER2 HEX: 8827
+CONSTANT: GL_DRAW_BUFFER3 HEX: 8828
+CONSTANT: GL_DRAW_BUFFER4 HEX: 8829
+CONSTANT: GL_DRAW_BUFFER5 HEX: 882A
+CONSTANT: GL_DRAW_BUFFER6 HEX: 882B
+CONSTANT: GL_DRAW_BUFFER7 HEX: 882C
+CONSTANT: GL_DRAW_BUFFER8 HEX: 882D
+CONSTANT: GL_DRAW_BUFFER9 HEX: 882E
+CONSTANT: GL_DRAW_BUFFER10 HEX: 882F
+CONSTANT: GL_DRAW_BUFFER11 HEX: 8830
+CONSTANT: GL_DRAW_BUFFER12 HEX: 8831
+CONSTANT: GL_DRAW_BUFFER13 HEX: 8832
+CONSTANT: GL_DRAW_BUFFER14 HEX: 8833
+CONSTANT: GL_DRAW_BUFFER15 HEX: 8834
+CONSTANT: GL_BLEND_EQUATION_ALPHA HEX: 883D
+CONSTANT: GL_POINT_SPRITE HEX: 8861
+CONSTANT: GL_COORD_REPLACE HEX: 8862
+CONSTANT: GL_MAX_VERTEX_ATTRIBS HEX: 8869
+CONSTANT: GL_VERTEX_ATTRIB_ARRAY_NORMALIZED HEX: 886A
+CONSTANT: GL_MAX_TEXTURE_COORDS HEX: 8871
+CONSTANT: GL_MAX_TEXTURE_IMAGE_UNITS HEX: 8872
+CONSTANT: GL_FRAGMENT_SHADER HEX: 8B30
+CONSTANT: GL_VERTEX_SHADER HEX: 8B31
+CONSTANT: GL_MAX_FRAGMENT_UNIFORM_COMPONENTS HEX: 8B49
+CONSTANT: GL_MAX_VERTEX_UNIFORM_COMPONENTS HEX: 8B4A
+CONSTANT: GL_MAX_VARYING_FLOATS HEX: 8B4B
+CONSTANT: GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS HEX: 8B4C
+CONSTANT: GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS HEX: 8B4D
+CONSTANT: GL_SHADER_TYPE HEX: 8B4F
+CONSTANT: GL_FLOAT_VEC2 HEX: 8B50
+CONSTANT: GL_FLOAT_VEC3 HEX: 8B51
+CONSTANT: GL_FLOAT_VEC4 HEX: 8B52
+CONSTANT: GL_INT_VEC2 HEX: 8B53
+CONSTANT: GL_INT_VEC3 HEX: 8B54
+CONSTANT: GL_INT_VEC4 HEX: 8B55
+CONSTANT: GL_BOOL HEX: 8B56
+CONSTANT: GL_BOOL_VEC2 HEX: 8B57
+CONSTANT: GL_BOOL_VEC3 HEX: 8B58
+CONSTANT: GL_BOOL_VEC4 HEX: 8B59
+CONSTANT: GL_FLOAT_MAT2 HEX: 8B5A
+CONSTANT: GL_FLOAT_MAT3 HEX: 8B5B
+CONSTANT: GL_FLOAT_MAT4 HEX: 8B5C
+CONSTANT: GL_SAMPLER_1D HEX: 8B5D
+CONSTANT: GL_SAMPLER_2D HEX: 8B5E
+CONSTANT: GL_SAMPLER_3D HEX: 8B5F
+CONSTANT: GL_SAMPLER_CUBE HEX: 8B60
+CONSTANT: GL_SAMPLER_1D_SHADOW HEX: 8B61
+CONSTANT: GL_SAMPLER_2D_SHADOW HEX: 8B62
+CONSTANT: GL_DELETE_STATUS HEX: 8B80
+CONSTANT: GL_COMPILE_STATUS HEX: 8B81
+CONSTANT: GL_LINK_STATUS HEX: 8B82
+CONSTANT: GL_VALIDATE_STATUS HEX: 8B83
+CONSTANT: GL_INFO_LOG_LENGTH HEX: 8B84
+CONSTANT: GL_ATTACHED_SHADERS HEX: 8B85
+CONSTANT: GL_ACTIVE_UNIFORMS HEX: 8B86
+CONSTANT: GL_ACTIVE_UNIFORM_MAX_LENGTH HEX: 8B87
+CONSTANT: GL_SHADER_SOURCE_LENGTH HEX: 8B88
+CONSTANT: GL_ACTIVE_ATTRIBUTES HEX: 8B89
+CONSTANT: GL_ACTIVE_ATTRIBUTE_MAX_LENGTH HEX: 8B8A
+CONSTANT: GL_FRAGMENT_SHADER_DERIVATIVE_HINT HEX: 8B8B
+CONSTANT: GL_SHADING_LANGUAGE_VERSION HEX: 8B8C
+CONSTANT: GL_CURRENT_PROGRAM HEX: 8B8D
+CONSTANT: GL_POINT_SPRITE_COORD_ORIGIN HEX: 8CA0
+CONSTANT: GL_LOWER_LEFT HEX: 8CA1
+CONSTANT: GL_UPPER_LEFT HEX: 8CA2
+CONSTANT: GL_STENCIL_BACK_REF HEX: 8CA3
+CONSTANT: GL_STENCIL_BACK_VALUE_MASK HEX: 8CA4
+CONSTANT: GL_STENCIL_BACK_WRITEMASK HEX: 8CA5
+CONSTANT: GL_BLEND_EQUATION HEX: 8009
+ALIAS: GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
 
 TYPEDEF: char GLchar
 
@@ -1674,23 +1670,23 @@ GL-FUNCTION: void glVertexAttribPointer { glVertexAttribPointerARB } ( GLuint in
 ! OpenGL 2.1
 
 
-: GL_CURRENT_RASTER_SECONDARY_COLOR HEX: 845F ; inline
-: GL_PIXEL_PACK_BUFFER HEX: 88EB ; inline
-: GL_PIXEL_UNPACK_BUFFER HEX: 88EC ; inline
-: GL_PIXEL_PACK_BUFFER_BINDING HEX: 88ED ; inline
-: GL_PIXEL_UNPACK_BUFFER_BINDING HEX: 88EF ; inline
-: GL_SRGB HEX: 8C40 ; inline
-: GL_SRGB8 HEX: 8C41 ; inline
-: GL_SRGB_ALPHA HEX: 8C42 ; inline
-: GL_SRGB8_ALPHA8 HEX: 8C43 ; inline
-: GL_SLUMINANCE_ALPHA HEX: 8C44 ; inline
-: GL_SLUMINANCE8_ALPHA8 HEX: 8C45 ; inline
-: GL_SLUMINANCE HEX: 8C46 ; inline
-: GL_SLUMINANCE8 HEX: 8C47 ; inline
-: GL_COMPRESSED_SRGB HEX: 8C48 ; inline
-: GL_COMPRESSED_SRGB_ALPHA HEX: 8C49 ; inline
-: GL_COMPRESSED_SLUMINANCE HEX: 8C4A ; inline
-: GL_COMPRESSED_SLUMINANCE_ALPHA HEX: 8C4B ; inline
+CONSTANT: GL_CURRENT_RASTER_SECONDARY_COLOR HEX: 845F
+CONSTANT: GL_PIXEL_PACK_BUFFER HEX: 88EB
+CONSTANT: GL_PIXEL_UNPACK_BUFFER HEX: 88EC
+CONSTANT: GL_PIXEL_PACK_BUFFER_BINDING HEX: 88ED
+CONSTANT: GL_PIXEL_UNPACK_BUFFER_BINDING HEX: 88EF
+CONSTANT: GL_SRGB HEX: 8C40
+CONSTANT: GL_SRGB8 HEX: 8C41
+CONSTANT: GL_SRGB_ALPHA HEX: 8C42
+CONSTANT: GL_SRGB8_ALPHA8 HEX: 8C43
+CONSTANT: GL_SLUMINANCE_ALPHA HEX: 8C44
+CONSTANT: GL_SLUMINANCE8_ALPHA8 HEX: 8C45
+CONSTANT: GL_SLUMINANCE HEX: 8C46
+CONSTANT: GL_SLUMINANCE8 HEX: 8C47
+CONSTANT: GL_COMPRESSED_SRGB HEX: 8C48
+CONSTANT: GL_COMPRESSED_SRGB_ALPHA HEX: 8C49
+CONSTANT: GL_COMPRESSED_SLUMINANCE HEX: 8C4A
+CONSTANT: GL_COMPRESSED_SLUMINANCE_ALPHA HEX: 8C4B
 
 GL-FUNCTION: void glUniformMatrix2x3fv { } ( GLint location, GLsizei count, GLboolean transpose, GLfloat* value ) ;
 GL-FUNCTION: void glUniformMatrix2x4fv { } ( GLint location, GLsizei count, GLboolean transpose, GLfloat* value ) ;
@@ -1703,57 +1699,57 @@ GL-FUNCTION: void glUniformMatrix4x3fv { } ( GLint location, GLsizei count, GLbo
 ! GL_EXT_framebuffer_object
 
 
-: GL_INVALID_FRAMEBUFFER_OPERATION_EXT HEX: 0506 ; inline
-: GL_MAX_RENDERBUFFER_SIZE_EXT HEX: 84E8 ; inline
-: GL_FRAMEBUFFER_BINDING_EXT HEX: 8CA6 ; inline
-: GL_RENDERBUFFER_BINDING_EXT HEX: 8CA7 ; inline
-: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT HEX: 8CD0 ; inline
-: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT HEX: 8CD1 ; inline
-: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT HEX: 8CD2 ; inline
-: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT HEX: 8CD3 ; inline
-: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT HEX: 8CD4 ; inline
-: GL_FRAMEBUFFER_COMPLETE_EXT HEX: 8CD5 ; inline
-: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT HEX: 8CD6 ; inline
-: GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT HEX: 8CD7 ; inline
-: GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT HEX: 8CD9 ; inline
-: GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT HEX: 8CDA ; inline
-: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT HEX: 8CDB ; inline
-: GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT HEX: 8CDC ; inline
-: GL_FRAMEBUFFER_UNSUPPORTED_EXT HEX: 8CDD ; inline
-: GL_MAX_COLOR_ATTACHMENTS_EXT HEX: 8CDF ; inline
-: GL_COLOR_ATTACHMENT0_EXT HEX: 8CE0 ; inline
-: GL_COLOR_ATTACHMENT1_EXT HEX: 8CE1 ; inline
-: GL_COLOR_ATTACHMENT2_EXT HEX: 8CE2 ; inline
-: GL_COLOR_ATTACHMENT3_EXT HEX: 8CE3 ; inline
-: GL_COLOR_ATTACHMENT4_EXT HEX: 8CE4 ; inline
-: GL_COLOR_ATTACHMENT5_EXT HEX: 8CE5 ; inline
-: GL_COLOR_ATTACHMENT6_EXT HEX: 8CE6 ; inline
-: GL_COLOR_ATTACHMENT7_EXT HEX: 8CE7 ; inline
-: GL_COLOR_ATTACHMENT8_EXT HEX: 8CE8 ; inline
-: GL_COLOR_ATTACHMENT9_EXT HEX: 8CE9 ; inline
-: GL_COLOR_ATTACHMENT10_EXT HEX: 8CEA ; inline
-: GL_COLOR_ATTACHMENT11_EXT HEX: 8CEB ; inline
-: GL_COLOR_ATTACHMENT12_EXT HEX: 8CEC ; inline
-: GL_COLOR_ATTACHMENT13_EXT HEX: 8CED ; inline
-: GL_COLOR_ATTACHMENT14_EXT HEX: 8CEE ; inline
-: GL_COLOR_ATTACHMENT15_EXT HEX: 8CEF ; inline
-: GL_DEPTH_ATTACHMENT_EXT HEX: 8D00 ; inline
-: GL_STENCIL_ATTACHMENT_EXT HEX: 8D20 ; inline
-: GL_FRAMEBUFFER_EXT HEX: 8D40 ; inline
-: GL_RENDERBUFFER_EXT HEX: 8D41 ; inline
-: GL_RENDERBUFFER_WIDTH_EXT HEX: 8D42 ; inline
-: GL_RENDERBUFFER_HEIGHT_EXT HEX: 8D43 ; inline
-: GL_RENDERBUFFER_INTERNAL_FORMAT_EXT HEX: 8D44 ; inline
-: GL_STENCIL_INDEX1_EXT HEX: 8D46 ; inline
-: GL_STENCIL_INDEX4_EXT HEX: 8D47 ; inline
-: GL_STENCIL_INDEX8_EXT HEX: 8D48 ; inline
-: GL_STENCIL_INDEX16_EXT HEX: 8D49 ; inline
-: GL_RENDERBUFFER_RED_SIZE_EXT HEX: 8D50 ; inline
-: GL_RENDERBUFFER_GREEN_SIZE_EXT HEX: 8D51 ; inline
-: GL_RENDERBUFFER_BLUE_SIZE_EXT HEX: 8D52 ; inline
-: GL_RENDERBUFFER_ALPHA_SIZE_EXT HEX: 8D53 ; inline
-: GL_RENDERBUFFER_DEPTH_SIZE_EXT HEX: 8D54 ; inline
-: GL_RENDERBUFFER_STENCIL_SIZE_EXT HEX: 8D55 ; inline
+CONSTANT: GL_INVALID_FRAMEBUFFER_OPERATION_EXT HEX: 0506
+CONSTANT: GL_MAX_RENDERBUFFER_SIZE_EXT HEX: 84E8
+CONSTANT: GL_FRAMEBUFFER_BINDING_EXT HEX: 8CA6
+CONSTANT: GL_RENDERBUFFER_BINDING_EXT HEX: 8CA7
+CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT HEX: 8CD0
+CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT HEX: 8CD1
+CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT HEX: 8CD2
+CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT HEX: 8CD3
+CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT HEX: 8CD4
+CONSTANT: GL_FRAMEBUFFER_COMPLETE_EXT HEX: 8CD5
+CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT HEX: 8CD6
+CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT HEX: 8CD7
+CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT HEX: 8CD9
+CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT HEX: 8CDA
+CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT HEX: 8CDB
+CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT HEX: 8CDC
+CONSTANT: GL_FRAMEBUFFER_UNSUPPORTED_EXT HEX: 8CDD
+CONSTANT: GL_MAX_COLOR_ATTACHMENTS_EXT HEX: 8CDF
+CONSTANT: GL_COLOR_ATTACHMENT0_EXT HEX: 8CE0
+CONSTANT: GL_COLOR_ATTACHMENT1_EXT HEX: 8CE1
+CONSTANT: GL_COLOR_ATTACHMENT2_EXT HEX: 8CE2
+CONSTANT: GL_COLOR_ATTACHMENT3_EXT HEX: 8CE3
+CONSTANT: GL_COLOR_ATTACHMENT4_EXT HEX: 8CE4
+CONSTANT: GL_COLOR_ATTACHMENT5_EXT HEX: 8CE5
+CONSTANT: GL_COLOR_ATTACHMENT6_EXT HEX: 8CE6
+CONSTANT: GL_COLOR_ATTACHMENT7_EXT HEX: 8CE7
+CONSTANT: GL_COLOR_ATTACHMENT8_EXT HEX: 8CE8
+CONSTANT: GL_COLOR_ATTACHMENT9_EXT HEX: 8CE9
+CONSTANT: GL_COLOR_ATTACHMENT10_EXT HEX: 8CEA
+CONSTANT: GL_COLOR_ATTACHMENT11_EXT HEX: 8CEB
+CONSTANT: GL_COLOR_ATTACHMENT12_EXT HEX: 8CEC
+CONSTANT: GL_COLOR_ATTACHMENT13_EXT HEX: 8CED
+CONSTANT: GL_COLOR_ATTACHMENT14_EXT HEX: 8CEE
+CONSTANT: GL_COLOR_ATTACHMENT15_EXT HEX: 8CEF
+CONSTANT: GL_DEPTH_ATTACHMENT_EXT HEX: 8D00
+CONSTANT: GL_STENCIL_ATTACHMENT_EXT HEX: 8D20
+CONSTANT: GL_FRAMEBUFFER_EXT HEX: 8D40
+CONSTANT: GL_RENDERBUFFER_EXT HEX: 8D41
+CONSTANT: GL_RENDERBUFFER_WIDTH_EXT HEX: 8D42
+CONSTANT: GL_RENDERBUFFER_HEIGHT_EXT HEX: 8D43
+CONSTANT: GL_RENDERBUFFER_INTERNAL_FORMAT_EXT HEX: 8D44
+CONSTANT: GL_STENCIL_INDEX1_EXT HEX: 8D46
+CONSTANT: GL_STENCIL_INDEX4_EXT HEX: 8D47
+CONSTANT: GL_STENCIL_INDEX8_EXT HEX: 8D48
+CONSTANT: GL_STENCIL_INDEX16_EXT HEX: 8D49
+CONSTANT: GL_RENDERBUFFER_RED_SIZE_EXT HEX: 8D50
+CONSTANT: GL_RENDERBUFFER_GREEN_SIZE_EXT HEX: 8D51
+CONSTANT: GL_RENDERBUFFER_BLUE_SIZE_EXT HEX: 8D52
+CONSTANT: GL_RENDERBUFFER_ALPHA_SIZE_EXT HEX: 8D53
+CONSTANT: GL_RENDERBUFFER_DEPTH_SIZE_EXT HEX: 8D54
+CONSTANT: GL_RENDERBUFFER_STENCIL_SIZE_EXT HEX: 8D55
 
 GL-FUNCTION: void glBindFramebufferEXT { } ( GLenum target, GLuint framebuffer ) ;
 GL-FUNCTION: void glBindRenderbufferEXT { } ( GLenum target, GLuint renderbuffer ) ;
@@ -1777,24 +1773,24 @@ GL-FUNCTION: void glRenderbufferStorageEXT { } ( GLenum target, GLenum internalf
 ! GL_ARB_texture_float
 
 
-: GL_RGBA32F_ARB HEX: 8814 ; inline
-: GL_RGB32F_ARB HEX: 8815 ; inline
-: GL_ALPHA32F_ARB HEX: 8816 ; inline
-: GL_INTENSITY32F_ARB HEX: 8817 ; inline
-: GL_LUMINANCE32F_ARB HEX: 8818 ; inline
-: GL_LUMINANCE_ALPHA32F_ARB HEX: 8819 ; inline
-: GL_RGBA16F_ARB HEX: 881A ; inline
-: GL_RGB16F_ARB HEX: 881B ; inline
-: GL_ALPHA16F_ARB HEX: 881C ; inline
-: GL_INTENSITY16F_ARB HEX: 881D ; inline
-: GL_LUMINANCE16F_ARB HEX: 881E ; inline
-: GL_LUMINANCE_ALPHA16F_ARB HEX: 881F ; inline
-: GL_TEXTURE_RED_TYPE_ARB HEX: 8C10 ; inline
-: GL_TEXTURE_GREEN_TYPE_ARB HEX: 8C11 ; inline
-: GL_TEXTURE_BLUE_TYPE_ARB HEX: 8C12 ; inline
-: GL_TEXTURE_ALPHA_TYPE_ARB HEX: 8C13 ; inline
-: GL_TEXTURE_LUMINANCE_TYPE_ARB HEX: 8C14 ; inline
-: GL_TEXTURE_INTENSITY_TYPE_ARB HEX: 8C15 ; inline
-: GL_TEXTURE_DEPTH_TYPE_ARB HEX: 8C16 ; inline
-: GL_UNSIGNED_NORMALIZED_ARB HEX: 8C17 ; inline
+CONSTANT: GL_RGBA32F_ARB HEX: 8814
+CONSTANT: GL_RGB32F_ARB HEX: 8815
+CONSTANT: GL_ALPHA32F_ARB HEX: 8816
+CONSTANT: GL_INTENSITY32F_ARB HEX: 8817
+CONSTANT: GL_LUMINANCE32F_ARB HEX: 8818
+CONSTANT: GL_LUMINANCE_ALPHA32F_ARB HEX: 8819
+CONSTANT: GL_RGBA16F_ARB HEX: 881A
+CONSTANT: GL_RGB16F_ARB HEX: 881B
+CONSTANT: GL_ALPHA16F_ARB HEX: 881C
+CONSTANT: GL_INTENSITY16F_ARB HEX: 881D
+CONSTANT: GL_LUMINANCE16F_ARB HEX: 881E
+CONSTANT: GL_LUMINANCE_ALPHA16F_ARB HEX: 881F
+CONSTANT: GL_TEXTURE_RED_TYPE_ARB HEX: 8C10
+CONSTANT: GL_TEXTURE_GREEN_TYPE_ARB HEX: 8C11
+CONSTANT: GL_TEXTURE_BLUE_TYPE_ARB HEX: 8C12
+CONSTANT: GL_TEXTURE_ALPHA_TYPE_ARB HEX: 8C13
+CONSTANT: GL_TEXTURE_LUMINANCE_TYPE_ARB HEX: 8C14
+CONSTANT: GL_TEXTURE_INTENSITY_TYPE_ARB HEX: 8C15
+CONSTANT: GL_TEXTURE_DEPTH_TYPE_ARB HEX: 8C16
+CONSTANT: GL_UNSIGNED_NORMALIZED_ARB HEX: 8C17
 
index 30501a61056979e1b3938acf6f4a094e4e62c170..b8f897463ab32c3e1b7731f2171bcd02bc976ef5 100644 (file)
@@ -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
-
-: SSL_FILETYPE_ASN1  X509_FILETYPE_ASN1 ; inline
-: SSL_FILETYPE_PEM   X509_FILETYPE_PEM ; inline
-
-: 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
-
-: 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
-
-: SSL_CTRL_SET_MSG_CALLBACK         13 ; inline
-: SSL_CTRL_SET_MSG_CALLBACK_ARG     14 ; inline
-
-: 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
-
-: 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
-
-: SSL_CTRL_GET_MAX_CERT_LIST        50 ; inline
-: SSL_CTRL_SET_MAX_CERT_LIST        51 ; inline
-
-: 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: X509_FILETYPE_PEM       1
+CONSTANT: X509_FILETYPE_ASN1      2
+CONSTANT: X509_FILETYPE_DEFAULT   3
+
+ALIAS: SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1
+ALIAS: SSL_FILETYPE_PEM  X509_FILETYPE_PEM
+
+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
+
+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
+
+CONSTANT: SSL_CTRL_SET_MSG_CALLBACK         13
+CONSTANT: SSL_CTRL_SET_MSG_CALLBACK_ARG     14
+
+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
+
+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
+
+CONSTANT: SSL_CTRL_GET_MAX_CERT_LIST        50
+CONSTANT: SSL_CTRL_SET_MAX_CERT_LIST        51
+
+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
index cd8e7c49e0b29c090c3e9b9f8fc6868e907522a1..554db08e703890f2feb6f8f7e187a3b45dce7add 100644 (file)
@@ -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 ;
index 81a2338b8ffb477ddc4e3c89b19affba181c26d2..5f21dad7760c2dd91d153adcc6ca895016df9ab5 100644 (file)
@@ -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 )
index fe0ce7c1574663add50091d6e97f8d7d29f3c1c6..c20e67d13c2d98d852c8818c79d2618afb58aa36 100644 (file)
@@ -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 } "." } ;
index a0a441ab50c63e4ff1e09818997e586c1dd1dfa0..19b406cc5878b142b788ccb2701df62b1aa1f668 100644 (file)
@@ -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
index 83b9287043fbf9882aba604f173037af74b9254c..8e344116040edd5b11e1d5d4eb97f5483784d221 100644 (file)
@@ -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." } ;
 
index 8ba5354dc40c79f17783dc0493d630029de12f58..6069a4cb4a8eb425bb82620cc5deadd3dbd5e8f2 100644 (file)
@@ -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{ \ } ;
 
index 147749864d23d2daf5ef41923fb8ec8f72fb34b6..9516b8cd7d4c22a12d25c1c7935ca78dce1673cc 100644 (file)
@@ -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? ]
index c5b5c80d137661d514eac1bfd38a51a5e54f95ed..a915551263a78ca06c02439a0dfd67d857e660ab 100644 (file)
@@ -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
index 76e6ea55907439cc3d86c2b97dbf68ab14e823d3..328bb8dc71f6e587692998cf0277eef9a5e8e194 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors calendar.format combinators io.files
 kernel math.parser sequences splitting system tools.files
-generalizations tools.files.private ;
+generalizations tools.files.private io.files.info ;
 IN: tools.files.windows
 
 <PRIVATE
index 22a4f1722db1f3f5a8ab6c89d854b668c1a48bf1..0f36f3dcbaef77629e40df47776135bb96fe331c 100644 (file)
@@ -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 ;
index 8d79c9e07c9877af633c8cb8949dba507719c8c0..03e2e64d958af30040890fce49c249b10dffc4c7 100755 (executable)
@@ -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-
index d53cba5f76516f47d224666f1dba0ca57c560ed8..23dc99da82124b3d0305f6d075ab7fb94c7e3d97 100644 (file)
@@ -49,8 +49,8 @@ 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 )
-{ $values { "pane" pane } { "stream" "a new " { $link pane-stream } } }
+HELP: <pane-stream>
+{ $values { "pane" pane } { "pane-stream" "a new " { $link pane-stream } } }
 { $description "Creates a new " { $link pane-stream } " for writing to " { $snippet "pane" } "." } ;
 
 { with-pane make-pane } related-words
index bf426ad8672cce3ffea90f9d6d0e3a365ea15b95..42f2a07e62c1cceddc13bcc9de5bb0edbedf7162 100644 (file)
@@ -1,30 +1,31 @@
 ! 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
+constants ;
 IN: unix
 
-: MAXPATHLEN 1024 ; inline
-
-: O_RDONLY   HEX: 0000 ; inline
-: O_WRONLY   HEX: 0001 ; inline
-: O_RDWR     HEX: 0002 ; inline
-: O_NONBLOCK HEX: 0004 ; inline
-: O_APPEND   HEX: 0008 ; inline
-: O_CREAT    HEX: 0200 ; inline
-: O_TRUNC    HEX: 0400 ; inline
-: O_EXCL     HEX: 0800 ; inline
-: O_NOCTTY   HEX: 20000 ; inline
-: O_NDELAY O_NONBLOCK ; inline
-
-: SOL_SOCKET HEX: ffff ; inline
-: SO_REUSEADDR HEX: 4 ; inline
-: SO_OOBINLINE HEX: 100 ; inline
-: SO_SNDTIMEO HEX: 1005 ; inline
-: SO_RCVTIMEO HEX: 1006 ; inline
-
-: F_SETFD 2 ; inline
-: F_SETFL 4 ; inline
-: FD_CLOEXEC 1 ; inline
+CONSTANT: MAXPATHLEN 1024
+
+CONSTANT: O_RDONLY   HEX: 0000
+CONSTANT: O_WRONLY   HEX: 0001
+CONSTANT: O_RDWR     HEX: 0002
+CONSTANT: O_NONBLOCK HEX: 0004
+CONSTANT: O_APPEND   HEX: 0008
+CONSTANT: O_CREAT    HEX: 0200
+CONSTANT: O_TRUNC    HEX: 0400
+CONSTANT: O_EXCL     HEX: 0800
+CONSTANT: O_NOCTTY   HEX: 20000
+ALIAS: O_NDELAY O_NONBLOCK
+
+CONSTANT: SOL_SOCKET HEX: ffff
+CONSTANT: SO_REUSEADDR HEX: 4
+CONSTANT: SO_OOBINLINE HEX: 100
+CONSTANT: SO_SNDTIMEO HEX: 1005
+CONSTANT: SO_RCVTIMEO HEX: 1006
+
+CONSTANT: F_SETFD 2
+CONSTANT: F_SETFL 4
+CONSTANT: FD_CLOEXEC 1
 
 C-STRUCT: sockaddr-in
     { "uchar" "len" }
@@ -59,29 +60,29 @@ C-STRUCT: passwd
     { "time_t" "pw_expire" }
     { "int"    "pw_fields" } ;
 
-: max-un-path 104 ; inline
+CONSTANT: max-un-path 104
 
-: SOCK_STREAM 1 ; inline
-: SOCK_DGRAM 2 ; inline
+CONSTANT: SOCK_STREAM 1
+CONSTANT: SOCK_DGRAM 2
 
-: AF_UNSPEC 0 ; inline
-: AF_UNIX 1 ; inline
-: AF_INET 2 ; inline
-: AF_INET6 30 ; inline
+CONSTANT: AF_UNSPEC 0
+CONSTANT: AF_UNIX 1
+CONSTANT: AF_INET 2
+CONSTANT: AF_INET6 30
 
-: 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
+CONSTANT: IPPROTO_TCP 6
+CONSTANT: IPPROTO_UDP 17
 
-: AI_PASSIVE 1 ; inline
+CONSTANT: AI_PASSIVE 1
 
-: SEEK_SET 0 ; inline
-: SEEK_CUR 1 ; inline
-: SEEK_END 2 ; inline
+CONSTANT: SEEK_SET 0
+CONSTANT: SEEK_CUR 1
+CONSTANT: SEEK_END 2
 
 os {
     { macosx  [ "unix.bsd.macosx"  require ] }
index 81885ff14157b1f7d12e8ce4138cba4620e02aff..d58cfbb90d21767d46aad975ac25abc92c2bed24 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax ;
+USING: alien.syntax alias constants ;
 IN: unix
 
 : FD_SETSIZE 1024 ;
@@ -20,97 +20,97 @@ C-STRUCT: dirent
     { "u_int8_t"  "d_namlen" }
     { { "char" 256 } "d_name" } ;
 
-: EPERM 1 ; inline
-: ENOENT 2 ; inline
-: ESRCH 3 ; inline
-: EINTR 4 ; inline
-: EIO 5 ; inline
-: ENXIO 6 ; inline
-: E2BIG 7 ; inline
-: ENOEXEC 8 ; inline
-: EBADF 9 ; inline
-: ECHILD 10 ; inline
-: EDEADLK 11 ; inline
-: ENOMEM 12 ; inline
-: EACCES 13 ; inline
-: EFAULT 14 ; inline
-: ENOTBLK 15 ; inline
-: EBUSY 16 ; inline
-: EEXIST 17 ; inline
-: EXDEV 18 ; inline
-: ENODEV 19 ; inline
-: ENOTDIR 20 ; inline
-: EISDIR 21 ; inline
-: EINVAL 22 ; inline
-: ENFILE 23 ; inline
-: EMFILE 24 ; inline
-: ENOTTY 25 ; inline
-: ETXTBSY 26 ; inline
-: EFBIG 27 ; inline
-: ENOSPC 28 ; inline
-: ESPIPE 29 ; inline
-: EROFS 30 ; inline
-: EMLINK 31 ; inline
-: EPIPE 32 ; inline
-: EDOM 33 ; inline
-: ERANGE 34 ; inline
-: EAGAIN 35 ; inline
-: EWOULDBLOCK EAGAIN ; inline
-: EINPROGRESS 36 ; inline
-: EALREADY 37 ; inline
-: ENOTSOCK 38 ; inline
-: EDESTADDRREQ 39 ; inline
-: EMSGSIZE 40 ; inline
-: EPROTOTYPE 41 ; inline
-: ENOPROTOOPT 42 ; inline
-: EPROTONOSUPPORT 43 ; inline
-: ESOCKTNOSUPPORT 44 ; inline
-: EOPNOTSUPP 45 ; inline
-: ENOTSUP EOPNOTSUPP ; inline
-: EPFNOSUPPORT 46 ; inline
-: EAFNOSUPPORT 47 ; inline
-: EADDRINUSE 48 ; inline
-: EADDRNOTAVAIL 49 ; inline
-: ENETDOWN 50 ; inline
-: ENETUNREACH 51 ; inline
-: ENETRESET 52 ; inline
-: ECONNABORTED 53 ; inline
-: ECONNRESET 54 ; inline
-: ENOBUFS 55 ; inline
-: EISCONN 56 ; inline
-: ENOTCONN 57 ; inline
-: ESHUTDOWN 58 ; inline
-: ETOOMANYREFS 59 ; inline
-: ETIMEDOUT 60 ; inline
-: ECONNREFUSED 61 ; inline
-: ELOOP 62 ; inline
-: ENAMETOOLONG 63 ; inline
-: EHOSTDOWN 64 ; inline
-: EHOSTUNREACH 65 ; inline
-: ENOTEMPTY 66 ; inline
-: EPROCLIM 67 ; inline
-: EUSERS 68 ; inline
-: EDQUOT 69 ; inline
-: ESTALE 70 ; inline
-: EREMOTE 71 ; inline
-: EBADRPC 72 ; inline
-: ERPCMISMATCH 73 ; inline
-: EPROGUNAVAIL 74 ; inline
-: EPROGMISMATCH 75 ; inline
-: EPROCUNAVAIL 76 ; inline
-: ENOLCK 77 ; inline
-: ENOSYS 78 ; inline
-: EFTYPE 79 ; inline
-: EAUTH 80 ; inline
-: ENEEDAUTH 81 ; inline
-: EIDRM 82 ; inline
-: ENOMSG 83 ; inline
-: EOVERFLOW 84 ; inline
-: ECANCELED 85 ; inline
-: EILSEQ 86 ; inline
-: ENOATTR 87 ; inline
-: EDOOFUS 88 ; inline
-: EBADMSG 89 ; inline
-: EMULTIHOP 90 ; inline
-: ENOLINK 91 ; inline
-: EPROTO 92 ; inline
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EDEADLK 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EAGAIN 35
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: EINPROGRESS 36
+CONSTANT: EALREADY 37
+CONSTANT: ENOTSOCK 38
+CONSTANT: EDESTADDRREQ 39
+CONSTANT: EMSGSIZE 40
+CONSTANT: EPROTOTYPE 41
+CONSTANT: ENOPROTOOPT 42
+CONSTANT: EPROTONOSUPPORT 43
+CONSTANT: ESOCKTNOSUPPORT 44
+CONSTANT: EOPNOTSUPP 45
+ALIAS: ENOTSUP EOPNOTSUPP
+CONSTANT: EPFNOSUPPORT 46
+CONSTANT: EAFNOSUPPORT 47
+CONSTANT: EADDRINUSE 48
+CONSTANT: EADDRNOTAVAIL 49
+CONSTANT: ENETDOWN 50
+CONSTANT: ENETUNREACH 51
+CONSTANT: ENETRESET 52
+CONSTANT: ECONNABORTED 53
+CONSTANT: ECONNRESET 54
+CONSTANT: ENOBUFS 55
+CONSTANT: EISCONN 56
+CONSTANT: ENOTCONN 57
+CONSTANT: ESHUTDOWN 58
+CONSTANT: ETOOMANYREFS 59
+CONSTANT: ETIMEDOUT 60
+CONSTANT: ECONNREFUSED 61
+CONSTANT: ELOOP 62
+CONSTANT: ENAMETOOLONG 63
+CONSTANT: EHOSTDOWN 64
+CONSTANT: EHOSTUNREACH 65
+CONSTANT: ENOTEMPTY 66
+CONSTANT: EPROCLIM 67
+CONSTANT: EUSERS 68
+CONSTANT: EDQUOT 69
+CONSTANT: ESTALE 70
+CONSTANT: EREMOTE 71
+CONSTANT: EBADRPC 72
+CONSTANT: ERPCMISMATCH 73
+CONSTANT: EPROGUNAVAIL 74
+CONSTANT: EPROGMISMATCH 75
+CONSTANT: EPROCUNAVAIL 76
+CONSTANT: ENOLCK 77
+CONSTANT: ENOSYS 78
+CONSTANT: EFTYPE 79
+CONSTANT: EAUTH 80
+CONSTANT: ENEEDAUTH 81
+CONSTANT: EIDRM 82
+CONSTANT: ENOMSG 83
+CONSTANT: EOVERFLOW 84
+CONSTANT: ECANCELED 85
+CONSTANT: EILSEQ 86
+CONSTANT: ENOATTR 87
+CONSTANT: EDOOFUS 88
+CONSTANT: EBADMSG 89
+CONSTANT: EMULTIHOP 90
+CONSTANT: ENOLINK 91
+CONSTANT: EPROTO 92
index fb9eb9a621388b0e0e23e10a2bfd37fde273e71e..f38707b456e116ed31998160717136a3062e0b29 100644 (file)
@@ -1,7 +1,7 @@
-USING: alien.syntax unix.time ;
+USING: alien.syntax unix.time alias constants ;
 IN: unix
 
-: FD_SETSIZE 1024 ; inline
+CONSTANT: FD_SETSIZE 1024
 
 C-STRUCT: addrinfo
     { "int" "flags" }
@@ -13,10 +13,10 @@ C-STRUCT: addrinfo
     { "void*" "addr" }
     { "addrinfo*" "next" } ;
 
-: _UTX_USERSIZE 256 ; inline
-: _UTX_LINESIZE 32 ; inline
-: _UTX_IDSIZE 4 ; inline
-: _UTX_HOSTSIZE 256 ; inline
+CONSTANT: _UTX_USERSIZE 256
+CONSTANT: _UTX_LINESIZE 32
+CONSTANT: _UTX_IDSIZE 4
+CONSTANT: _UTX_HOSTSIZE 256
     
 C-STRUCT: utmpx
     { { "char" _UTX_USERSIZE } "ut_user" }
@@ -28,9 +28,9 @@ C-STRUCT: utmpx
     { { "char" _UTX_HOSTSIZE } "ut_host" }
     { { "uint" 16 } "ut_pad" } ;
 
-: __DARWIN_MAXPATHLEN 1024 ; inline
-: __DARWIN_MAXNAMELEN 255 ; inline
-: __DARWIN_MAXNAMELEN+1 255 ; inline
+CONSTANT: __DARWIN_MAXPATHLEN 1024
+CONSTANT: __DARWIN_MAXNAMELEN 255
+CONSTANT: __DARWIN_MAXNAMELEN+1 255
 
 C-STRUCT: dirent
     { "ino_t" "d_ino" }
@@ -39,107 +39,107 @@ C-STRUCT: dirent
     { "__uint8_t"  "d_namlen" }
     { { "char" __DARWIN_MAXNAMELEN+1 } "d_name" } ;
 
-: EPERM 1 ; inline
-: ENOENT 2 ; inline
-: ESRCH 3 ; inline
-: EINTR 4 ; inline
-: EIO 5 ; inline
-: ENXIO 6 ; inline
-: E2BIG 7 ; inline
-: ENOEXEC 8 ; inline
-: EBADF 9 ; inline
-: ECHILD 10 ; inline
-: EDEADLK 11 ; inline
-: ENOMEM 12 ; inline
-: EACCES 13 ; inline
-: EFAULT 14 ; inline
-: ENOTBLK 15 ; inline
-: EBUSY 16 ; inline
-: EEXIST 17 ; inline
-: EXDEV 18 ; inline
-: ENODEV 19 ; inline
-: ENOTDIR 20 ; inline
-: EISDIR 21 ; inline
-: EINVAL 22 ; inline
-: ENFILE 23 ; inline
-: EMFILE 24 ; inline
-: ENOTTY 25 ; inline
-: ETXTBSY 26 ; inline
-: EFBIG 27 ; inline
-: ENOSPC 28 ; inline
-: ESPIPE 29 ; inline
-: EROFS 30 ; inline
-: EMLINK 31 ; inline
-: EPIPE 32 ; inline
-: EDOM 33 ; inline
-: ERANGE 34 ; inline
-: EAGAIN 35 ; inline
-: EWOULDBLOCK EAGAIN ; inline
-: EINPROGRESS 36 ; inline
-: EALREADY 37 ; inline
-: ENOTSOCK 38 ; inline
-: EDESTADDRREQ 39 ; inline
-: EMSGSIZE 40 ; inline
-: EPROTOTYPE 41 ; inline
-: ENOPROTOOPT 42 ; inline
-: EPROTONOSUPPORT 43 ; inline
-: ESOCKTNOSUPPORT 44 ; inline
-: ENOTSUP 45 ; inline
-: EPFNOSUPPORT 46 ; inline
-: EAFNOSUPPORT 47 ; inline
-: EADDRINUSE 48 ; inline
-: EADDRNOTAVAIL 49 ; inline
-: ENETDOWN 50 ; inline
-: ENETUNREACH 51 ; inline
-: ENETRESET 52 ; inline
-: ECONNABORTED 53 ; inline
-: ECONNRESET 54 ; inline
-: ENOBUFS 55 ; inline
-: EISCONN 56 ; inline
-: ENOTCONN 57 ; inline
-: ESHUTDOWN 58 ; inline
-: ETOOMANYREFS 59 ; inline
-: ETIMEDOUT 60 ; inline
-: ECONNREFUSED 61 ; inline
-: ELOOP 62 ; inline
-: ENAMETOOLONG 63 ; inline
-: EHOSTDOWN 64 ; inline
-: EHOSTUNREACH 65 ; inline
-: ENOTEMPTY 66 ; inline
-: EPROCLIM 67 ; inline
-: EUSERS 68 ; inline
-: EDQUOT 69 ; inline
-: ESTALE 70 ; inline
-: EREMOTE 71 ; inline
-: EBADRPC 72 ; inline
-: ERPCMISMATCH 73 ; inline
-: EPROGUNAVAIL 74 ; inline
-: EPROGMISMATCH 75 ; inline
-: EPROCUNAVAIL 76 ; inline
-: ENOLCK 77 ; inline
-: ENOSYS 78 ; inline
-: EFTYPE 79 ; inline
-: EAUTH 80 ; inline
-: ENEEDAUTH 81 ; inline
-: EPWROFF 82 ; inline
-: EDEVERR 83 ; inline
-: EOVERFLOW 84 ; inline
-: EBADEXEC 85 ; inline
-: EBADARCH 86 ; inline
-: ESHLIBVERS 87 ; inline
-: EBADMACHO 88 ; inline
-: ECANCELED 89 ; inline
-: EIDRM 90 ; inline
-: ENOMSG 91 ; inline
-: EILSEQ 92 ; inline
-: ENOATTR 93 ; inline
-: EBADMSG 94 ; inline
-: EMULTIHOP 95 ; inline
-: ENODATA 96 ; inline
-: ENOLINK 97 ; inline
-: ENOSR 98 ; inline
-: ENOSTR 99 ; inline
-: EPROTO 100 ; inline
-: ETIME 101 ; inline
-: EOPNOTSUPP 102 ; inline
-: ENOPOLICY 103 ; inline
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EDEADLK 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EAGAIN 35
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: EINPROGRESS 36
+CONSTANT: EALREADY 37
+CONSTANT: ENOTSOCK 38
+CONSTANT: EDESTADDRREQ 39
+CONSTANT: EMSGSIZE 40
+CONSTANT: EPROTOTYPE 41
+CONSTANT: ENOPROTOOPT 42
+CONSTANT: EPROTONOSUPPORT 43
+CONSTANT: ESOCKTNOSUPPORT 44
+CONSTANT: ENOTSUP 45
+CONSTANT: EPFNOSUPPORT 46
+CONSTANT: EAFNOSUPPORT 47
+CONSTANT: EADDRINUSE 48
+CONSTANT: EADDRNOTAVAIL 49
+CONSTANT: ENETDOWN 50
+CONSTANT: ENETUNREACH 51
+CONSTANT: ENETRESET 52
+CONSTANT: ECONNABORTED 53
+CONSTANT: ECONNRESET 54
+CONSTANT: ENOBUFS 55
+CONSTANT: EISCONN 56
+CONSTANT: ENOTCONN 57
+CONSTANT: ESHUTDOWN 58
+CONSTANT: ETOOMANYREFS 59
+CONSTANT: ETIMEDOUT 60
+CONSTANT: ECONNREFUSED 61
+CONSTANT: ELOOP 62
+CONSTANT: ENAMETOOLONG 63
+CONSTANT: EHOSTDOWN 64
+CONSTANT: EHOSTUNREACH 65
+CONSTANT: ENOTEMPTY 66
+CONSTANT: EPROCLIM 67
+CONSTANT: EUSERS 68
+CONSTANT: EDQUOT 69
+CONSTANT: ESTALE 70
+CONSTANT: EREMOTE 71
+CONSTANT: EBADRPC 72
+CONSTANT: ERPCMISMATCH 73
+CONSTANT: EPROGUNAVAIL 74
+CONSTANT: EPROGMISMATCH 75
+CONSTANT: EPROCUNAVAIL 76
+CONSTANT: ENOLCK 77
+CONSTANT: ENOSYS 78
+CONSTANT: EFTYPE 79
+CONSTANT: EAUTH 80
+CONSTANT: ENEEDAUTH 81
+CONSTANT: EPWROFF 82
+CONSTANT: EDEVERR 83
+CONSTANT: EOVERFLOW 84
+CONSTANT: EBADEXEC 85
+CONSTANT: EBADARCH 86
+CONSTANT: ESHLIBVERS 87
+CONSTANT: EBADMACHO 88
+CONSTANT: ECANCELED 89
+CONSTANT: EIDRM 90
+CONSTANT: ENOMSG 91
+CONSTANT: EILSEQ 92
+CONSTANT: ENOATTR 93
+CONSTANT: EBADMSG 94
+CONSTANT: EMULTIHOP 95
+CONSTANT: ENODATA 96
+CONSTANT: ENOLINK 97
+CONSTANT: ENOSR 98
+CONSTANT: ENOSTR 99
+CONSTANT: EPROTO 100
+CONSTANT: ETIME 101
+CONSTANT: EOPNOTSUPP 102
+CONSTANT: ENOPOLICY 103
index 149f35afce1e2fc3390d08650a99da32d16d8301..8ca78c72a64ad2a0fc1095ed459be53b7f376afe 100644 (file)
@@ -1,7 +1,7 @@
-USING: alien.syntax alien.c-types math vocabs.loader ;
+USING: alien.syntax alien.c-types math vocabs.loader constants alias ;
 IN: unix
 
-: FD_SETSIZE 256 ; inline
+CONSTANT: FD_SETSIZE 256
 
 C-STRUCT: addrinfo
     { "int" "flags" }
@@ -20,111 +20,111 @@ C-STRUCT: dirent
     { "__uint8_t"  "d_namlen" }
     { { "char" 256 } "d_name" } ;
 
-: EPERM 1 ; inline
-: ENOENT 2 ; inline
-: ESRCH 3 ; inline
-: EINTR 4 ; inline
-: EIO 5 ; inline
-: ENXIO 6 ; inline
-: E2BIG 7 ; inline
-: ENOEXEC 8 ; inline
-: EBADF 9 ; inline
-: ECHILD 10 ; inline
-: EDEADLK 11 ; inline
-: ENOMEM 12 ; inline
-: EACCES 13 ; inline
-: EFAULT 14 ; inline
-: ENOTBLK 15 ; inline
-: EBUSY 16 ; inline
-: EEXIST 17 ; inline
-: EXDEV 18 ; inline
-: ENODEV 19 ; inline
-: ENOTDIR 20 ; inline
-: EISDIR 21 ; inline
-: EINVAL 22 ; inline
-: ENFILE 23 ; inline
-: EMFILE 24 ; inline
-: ENOTTY 25 ; inline
-: ETXTBSY 26 ; inline
-: EFBIG 27 ; inline
-: ENOSPC 28 ; inline
-: ESPIPE 29 ; inline
-: EROFS 30 ; inline
-: EMLINK 31 ; inline
-: EPIPE 32 ; inline
-: EDOM 33 ; inline
-: ERANGE 34 ; inline
-: EAGAIN 35 ; inline
-: EWOULDBLOCK EAGAIN ; inline
-: EINPROGRESS 36 ; inline
-: EALREADY 37 ; inline
-: ENOTSOCK 38 ; inline
-: EDESTADDRREQ 39 ; inline
-: EMSGSIZE 40 ; inline
-: EPROTOTYPE 41 ; inline
-: ENOPROTOOPT 42 ; inline
-: EPROTONOSUPPORT 43 ; inline
-: ESOCKTNOSUPPORT 44 ; inline
-: EOPNOTSUPP 45 ; inline
-: EPFNOSUPPORT 46 ; inline
-: EAFNOSUPPORT 47 ; inline
-: EADDRINUSE 48 ; inline
-: EADDRNOTAVAIL 49 ; inline
-: ENETDOWN 50 ; inline
-: ENETUNREACH 51 ; inline
-: ENETRESET 52 ; inline
-: ECONNABORTED 53 ; inline
-: ECONNRESET 54 ; inline
-: ENOBUFS 55 ; inline
-: EISCONN 56 ; inline
-: ENOTCONN 57 ; inline
-: ESHUTDOWN 58 ; inline
-: ETOOMANYREFS 59 ; inline
-: ETIMEDOUT 60 ; inline
-: ECONNREFUSED 61 ; inline
-: ELOOP 62 ; inline
-: ENAMETOOLONG 63 ; inline
-: EHOSTDOWN 64 ; inline
-: EHOSTUNREACH 65 ; inline
-: ENOTEMPTY 66 ; inline
-: EPROCLIM 67 ; inline
-: EUSERS 68 ; inline
-: EDQUOT 69 ; inline
-: ESTALE 70 ; inline
-: EREMOTE 71 ; inline
-: EBADRPC 72 ; inline
-: ERPCMISMATCH 73 ; inline
-: EPROGUNAVAIL 74 ; inline
-: EPROGMISMATCH 75 ; inline
-: EPROCUNAVAIL 76 ; inline
-: ENOLCK 77 ; inline
-: ENOSYS 78 ; inline
-: EFTYPE 79 ; inline
-: EAUTH 80 ; inline
-: ENEEDAUTH 81 ; inline
-: EIDRM 82 ; inline
-: ENOMSG 83 ; inline
-: EOVERFLOW 84 ; inline
-: EILSEQ 85 ; inline
-: ENOTSUP 86 ; inline
-: ECANCELED 87 ; inline
-: EBADMSG 88 ; inline
-: ENODATA 89 ; inline
-: ENOSR 90 ; inline
-: ENOSTR 91 ; inline
-: ETIME 92 ; inline
-: ENOATTR 93 ; inline
-: EMULTIHOP 94 ; inline
-: ENOLINK 95 ; inline
-: EPROTO 96 ; inline
-: ELAST 96 ; inline
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EDEADLK 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EAGAIN 35
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: EINPROGRESS 36
+CONSTANT: EALREADY 37
+CONSTANT: ENOTSOCK 38
+CONSTANT: EDESTADDRREQ 39
+CONSTANT: EMSGSIZE 40
+CONSTANT: EPROTOTYPE 41
+CONSTANT: ENOPROTOOPT 42
+CONSTANT: EPROTONOSUPPORT 43
+CONSTANT: ESOCKTNOSUPPORT 44
+CONSTANT: EOPNOTSUPP 45
+CONSTANT: EPFNOSUPPORT 46
+CONSTANT: EAFNOSUPPORT 47
+CONSTANT: EADDRINUSE 48
+CONSTANT: EADDRNOTAVAIL 49
+CONSTANT: ENETDOWN 50
+CONSTANT: ENETUNREACH 51
+CONSTANT: ENETRESET 52
+CONSTANT: ECONNABORTED 53
+CONSTANT: ECONNRESET 54
+CONSTANT: ENOBUFS 55
+CONSTANT: EISCONN 56
+CONSTANT: ENOTCONN 57
+CONSTANT: ESHUTDOWN 58
+CONSTANT: ETOOMANYREFS 59
+CONSTANT: ETIMEDOUT 60
+CONSTANT: ECONNREFUSED 61
+CONSTANT: ELOOP 62
+CONSTANT: ENAMETOOLONG 63
+CONSTANT: EHOSTDOWN 64
+CONSTANT: EHOSTUNREACH 65
+CONSTANT: ENOTEMPTY 66
+CONSTANT: EPROCLIM 67
+CONSTANT: EUSERS 68
+CONSTANT: EDQUOT 69
+CONSTANT: ESTALE 70
+CONSTANT: EREMOTE 71
+CONSTANT: EBADRPC 72
+CONSTANT: ERPCMISMATCH 73
+CONSTANT: EPROGUNAVAIL 74
+CONSTANT: EPROGMISMATCH 75
+CONSTANT: EPROCUNAVAIL 76
+CONSTANT: ENOLCK 77
+CONSTANT: ENOSYS 78
+CONSTANT: EFTYPE 79
+CONSTANT: EAUTH 80
+CONSTANT: ENEEDAUTH 81
+CONSTANT: EIDRM 82
+CONSTANT: ENOMSG 83
+CONSTANT: EOVERFLOW 84
+CONSTANT: EILSEQ 85
+CONSTANT: ENOTSUP 86
+CONSTANT: ECANCELED 87
+CONSTANT: EBADMSG 88
+CONSTANT: ENODATA 89
+CONSTANT: ENOSR 90
+CONSTANT: ENOSTR 91
+CONSTANT: ETIME 92
+CONSTANT: ENOATTR 93
+CONSTANT: EMULTIHOP 94
+CONSTANT: ENOLINK 95
+CONSTANT: EPROTO 96
+CONSTANT: ELAST 96
 
 TYPEDEF: __uint8_t sa_family_t
 
-: _UTX_USERSIZE   32 ; inline
-: _UTX_LINESIZE   32 ; inline
-: _UTX_IDSIZE     4 ; inline
-: _UTX_HOSTSIZE   256 ; inline
+CONSTANT: _UTX_USERSIZE   32
+CONSTANT: _UTX_LINESIZE   32
+CONSTANT: _UTX_IDSIZE     4
+CONSTANT: _UTX_HOSTSIZE   256
 
 : _SS_MAXSIZE ( -- n )
     128 ; inline
index a4189775e7430eb4aa66ff582d78cbca8feaff64..4d40e9e5022b644f6c367676b29b32f98e18dceb 100644 (file)
@@ -1,7 +1,7 @@
-USING: alien.syntax ;
+USING: alien.syntax constants alias ;
 IN: unix
 
-: FD_SETSIZE 1024 ; inline
+CONSTANT: FD_SETSIZE 1024
 
 C-STRUCT: addrinfo
     { "int" "flags" }
@@ -20,92 +20,92 @@ C-STRUCT: dirent
     { "__uint8_t"  "d_namlen" }
     { { "char" 256 } "d_name" } ;
 
-: EPERM 1 ; inline
-: ENOENT 2 ; inline
-: ESRCH 3 ; inline
-: EINTR 4 ; inline
-: EIO 5 ; inline
-: ENXIO 6 ; inline
-: E2BIG 7 ; inline
-: ENOEXEC 8 ; inline
-: EBADF 9 ; inline
-: ECHILD 10 ; inline
-: EDEADLK 11 ; inline
-: ENOMEM 12 ; inline
-: EACCES 13 ; inline
-: EFAULT 14 ; inline
-: ENOTBLK 15 ; inline
-: EBUSY 16 ; inline
-: EEXIST 17 ; inline
-: EXDEV 18 ; inline
-: ENODEV 19 ; inline
-: ENOTDIR 20 ; inline
-: EISDIR 21 ; inline
-: EINVAL 22 ; inline
-: ENFILE 23 ; inline
-: EMFILE 24 ; inline
-: ENOTTY 25 ; inline
-: ETXTBSY 26 ; inline
-: EFBIG 27 ; inline
-: ENOSPC 28 ; inline
-: ESPIPE 29 ; inline
-: EROFS 30 ; inline
-: EMLINK 31 ; inline
-: EPIPE 32 ; inline
-: EDOM 33 ; inline
-: ERANGE 34 ; inline
-: EAGAIN 35 ; inline
-: EWOULDBLOCK EAGAIN ; inline
-: EINPROGRESS 36 ; inline
-: EALREADY 37 ; inline
-: ENOTSOCK 38 ; inline
-: EDESTADDRREQ 39 ; inline
-: EMSGSIZE 40 ; inline
-: EPROTOTYPE 41 ; inline
-: ENOPROTOOPT 42 ; inline
-: EPROTONOSUPPORT 43 ; inline
-: ESOCKTNOSUPPORT 44 ; inline
-: EOPNOTSUPP 45 ; inline
-: EPFNOSUPPORT 46 ; inline
-: EAFNOSUPPORT 47 ; inline
-: EADDRINUSE 48 ; inline
-: EADDRNOTAVAIL 49 ; inline
-: ENETDOWN 50 ; inline
-: ENETUNREACH 51 ; inline
-: ENETRESET 52 ; inline
-: ECONNABORTED 53 ; inline
-: ECONNRESET 54 ; inline
-: ENOBUFS 55 ; inline
-: EISCONN 56 ; inline
-: ENOTCONN 57 ; inline
-: ESHUTDOWN 58 ; inline
-: ETOOMANYREFS 59 ; inline
-: ETIMEDOUT 60 ; inline
-: ECONNREFUSED 61 ; inline
-: ELOOP 62 ; inline
-: ENAMETOOLONG 63 ; inline
-: EHOSTDOWN 64 ; inline
-: EHOSTUNREACH 65 ; inline
-: ENOTEMPTY 66 ; inline
-: EPROCLIM 67 ; inline
-: EUSERS 68 ; inline
-: EDQUOT 69 ; inline
-: ESTALE 70 ; inline
-: EREMOTE 71 ; inline
-: EBADRPC 72 ; inline
-: ERPCMISMATCH 73 ; inline
-: EPROGUNAVAIL 74 ; inline
-: EPROGMISMATCH 75 ; inline
-: EPROCUNAVAIL 76 ; inline
-: ENOLCK 77 ; inline
-: ENOSYS 78 ; inline
-: EFTYPE 79 ; inline
-: EAUTH 80 ; inline
-: ENEEDAUTH 81 ; inline
-: EIPSEC 82 ; inline
-: ENOATTR 83 ; inline
-: EILSEQ 84 ; inline
-: ENOMEDIUM 85 ; inline
-: EMEDIUMTYPE 86 ; inline
-: EOVERFLOW 87 ; inline
-: ECANCELED 88 ; inline
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EDEADLK 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EAGAIN 35
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: EINPROGRESS 36
+CONSTANT: EALREADY 37
+CONSTANT: ENOTSOCK 38
+CONSTANT: EDESTADDRREQ 39
+CONSTANT: EMSGSIZE 40
+CONSTANT: EPROTOTYPE 41
+CONSTANT: ENOPROTOOPT 42
+CONSTANT: EPROTONOSUPPORT 43
+CONSTANT: ESOCKTNOSUPPORT 44
+CONSTANT: EOPNOTSUPP 45
+CONSTANT: EPFNOSUPPORT 46
+CONSTANT: EAFNOSUPPORT 47
+CONSTANT: EADDRINUSE 48
+CONSTANT: EADDRNOTAVAIL 49
+CONSTANT: ENETDOWN 50
+CONSTANT: ENETUNREACH 51
+CONSTANT: ENETRESET 52
+CONSTANT: ECONNABORTED 53
+CONSTANT: ECONNRESET 54
+CONSTANT: ENOBUFS 55
+CONSTANT: EISCONN 56
+CONSTANT: ENOTCONN 57
+CONSTANT: ESHUTDOWN 58
+CONSTANT: ETOOMANYREFS 59
+CONSTANT: ETIMEDOUT 60
+CONSTANT: ECONNREFUSED 61
+CONSTANT: ELOOP 62
+CONSTANT: ENAMETOOLONG 63
+CONSTANT: EHOSTDOWN 64
+CONSTANT: EHOSTUNREACH 65
+CONSTANT: ENOTEMPTY 66
+CONSTANT: EPROCLIM 67
+CONSTANT: EUSERS 68
+CONSTANT: EDQUOT 69
+CONSTANT: ESTALE 70
+CONSTANT: EREMOTE 71
+CONSTANT: EBADRPC 72
+CONSTANT: ERPCMISMATCH 73
+CONSTANT: EPROGUNAVAIL 74
+CONSTANT: EPROGMISMATCH 75
+CONSTANT: EPROCUNAVAIL 76
+CONSTANT: ENOLCK 77
+CONSTANT: ENOSYS 78
+CONSTANT: EFTYPE 79
+CONSTANT: EAUTH 80
+CONSTANT: ENEEDAUTH 81
+CONSTANT: EIPSEC 82
+CONSTANT: ENOATTR 83
+CONSTANT: EILSEQ 84
+CONSTANT: ENOMEDIUM 85
+CONSTANT: EMEDIUMTYPE 86
+CONSTANT: EOVERFLOW 87
+CONSTANT: ECANCELED 88
index 1d9cab577eda8501a5e1e13ad15d8724fb25447e..0cc63229c4ebd792528f3914c4b068f6ef74f134 100644 (file)
@@ -1,11 +1,11 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.getfsstat.freebsd
 
-: MNT_WAIT        1       ; inline ! synchronously wait for I/O to complete
-: MNT_NOWAIT      2       ; inline ! start all I/O, but do not wait for it 
-: MNT_LAZY        3       ; inline ! push data not written by filesystem syncer 
-: MNT_SUSPEND     4       ; inline ! Suspend file system after sync 
+CONSTANT: MNT_WAIT        1       ! synchronously wait for I/O to complete
+CONSTANT: MNT_NOWAIT      2       ! start all I/O, but do not wait for it 
+CONSTANT: MNT_LAZY        3       ! push data not written by filesystem syncer 
+CONSTANT: MNT_SUSPEND     4       ! Suspend file system after sync 
 
 FUNCTION: int getfsstat ( statfs* buf, int bufsize, int flags ) ;
index fe39f8556b8131228a8e72a21cc09f8f0e339a4e..23d9a14b9b5a737f33b9bbe338970f428322033e 100644 (file)
@@ -1,9 +1,9 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.getfsstat.macosx
 
-: MNT_WAIT    1   ; inline ! synchronously wait for I/O to complete
-: MNT_NOWAIT  2   ; inline ! start all I/O, but do not wait for it
+CONSTANT: MNT_WAIT    1   ! synchronously wait for I/O to complete
+CONSTANT: MNT_NOWAIT  2   ! start all I/O, but do not wait for it
 
 FUNCTION: int getfsstat64 ( statfs* buf, int bufsize, int flags ) ;
index 1c8941a6531f5f8272577a5f3e81b2a85c01e60b..18064822ebe39cc772ff7ec796278b8ce83bc030 100644 (file)
@@ -1,10 +1,10 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.getfsstat.netbsd
 
-: MNT_WAIT        1       ; inline ! synchronously wait for I/O to complete
-: MNT_NOWAIT      2       ; inline ! start all I/O, but do not wait for it 
-: MNT_LAZY        3       ; inline ! push data not written by filesystem syncer 
+CONSTANT: MNT_WAIT   1 ! synchronously wait for I/O to complete
+CONSTANT: MNT_NOWAIT 2 ! start all I/O, but do not wait for it 
+CONSTANT: MNT_LAZY   3 ! push data not written by filesystem syncer 
 
 FUNCTION: int getvfsstat ( statfs* buf, int bufsize, int flags ) ;
index 8bf692bd9c3d629a8794ce3ccfa531b934ea87ec..41adfeaacde83e615e13643b5aa0d5c5233c1522 100644 (file)
@@ -1,10 +1,10 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.getfsstat.openbsd
 
-: MNT_WAIT        1       ; ! synchronously wait for I/O to complete
-: MNT_NOWAIT      2       ; ! start all I/O, but do not wait for it
-: MNT_LAZY        3       ; ! push data not written by filesystem syncer
+CONSTANT: MNT_WAIT   1 ! synchronously wait for I/O to complete
+CONSTANT: MNT_NOWAIT 2 ! start all I/O, but do not wait for it
+CONSTANT: MNT_LAZY   3 ! push data not written by filesystem syncer
 
 FUNCTION: int getfsstat ( statfs* buf, int bufsize, int flags ) ;
index edddae2c16dea9afb961248b96768f6a160593a4..4c90ef739eef2ee7bfdad7348b924622a874a64b 100644 (file)
@@ -1,4 +1,4 @@
-USE: alien.syntax
+USING: alien.syntax constants ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
@@ -12,12 +12,12 @@ C-STRUCT: kevent
 
 FUNCTION: int kevent ( int kq, kevent* changelist, int nchanges, kevent* eventlist, int nevents, timespec* timeout ) ;
 
-: EVFILT_READ     -1 ; inline
-: EVFILT_WRITE    -2 ; inline
-: EVFILT_AIO      -3 ; inline ! attached to aio requests
-: EVFILT_VNODE    -4 ; inline ! attached to vnodes
-: EVFILT_PROC     -5 ; inline ! attached to struct proc
-: EVFILT_SIGNAL   -6 ; inline ! attached to struct proc
-: EVFILT_TIMER    -7 ; inline ! timers
-: EVFILT_NETDEV   -8 ; inline ! Mach ports
-: EVFILT_FS       -9 ; inline ! Filesystem events
+CONSTANT: EVFILT_READ     -1
+CONSTANT: EVFILT_WRITE    -2
+CONSTANT: EVFILT_AIO      -3 ! attached to aio requests
+CONSTANT: EVFILT_VNODE    -4 ! attached to vnodes
+CONSTANT: EVFILT_PROC     -5 ! attached to struct proc
+CONSTANT: EVFILT_SIGNAL   -6 ! attached to struct proc
+CONSTANT: EVFILT_TIMER    -7 ! timers
+CONSTANT: EVFILT_NETDEV   -8 ! Mach ports
+CONSTANT: EVFILT_FS       -9 ! Filesystem events
index d7623df8be0954b85446de497a84fb144f04101e..0f75354589ea350ae5baf4d9ff6cc3fe829fd66f 100644 (file)
@@ -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
-
-: EV_POLL EV_FLAG0 ; inline
-: EV_OOBAND EV_FLAG1 ; inline
-
-: NOTE_LOWAT      HEX: 00000001 ; inline ! 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
-
-: 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
-
-: 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
-
-: 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: EV_EOF          HEX: 8000 ! EOF detected
+CONSTANT: EV_ERROR        HEX: 4000 ! error, data contains errno
+
+ALIAS: EV_POLL EV_FLAG0
+ALIAS: EV_OOBAND EV_FLAG1
+
+CONSTANT: NOTE_LOWAT      HEX: 00000001 ! low water mark
+
+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
+
+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
+
+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
+
+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
index 7dc2a79c09f78ef743fd9749567a28f0736f3c5c..0bc6ce57857cf2077c76cb03860b8dd5e4cf22c4 100644 (file)
@@ -1,4 +1,4 @@
-USE: alien.syntax
+USING: alien.syntax constants ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
@@ -12,12 +12,12 @@ C-STRUCT: kevent
 
 FUNCTION: int kevent ( int kq, kevent* changelist, int nchanges, kevent* eventlist, int nevents, timespec* timeout ) ;
 
-: EVFILT_READ     -1 ; inline
-: EVFILT_WRITE    -2 ; inline
-: EVFILT_AIO      -3 ; inline ! attached to aio requests
-: EVFILT_VNODE    -4 ; inline ! attached to vnodes
-: EVFILT_PROC     -5 ; inline ! attached to struct proc
-: EVFILT_SIGNAL   -6 ; inline ! attached to struct proc
-: EVFILT_TIMER    -7 ; inline ! timers
-: EVFILT_MACHPORT -8 ; inline ! Mach ports
-: EVFILT_FS       -9 ; inline ! Filesystem events
+CONSTANT: EVFILT_READ     -1
+CONSTANT: EVFILT_WRITE    -2
+CONSTANT: EVFILT_AIO      -3 ! attached to aio requests
+CONSTANT: EVFILT_VNODE    -4 ! attached to vnodes
+CONSTANT: EVFILT_PROC     -5 ! attached to struct proc
+CONSTANT: EVFILT_SIGNAL   -6 ! attached to struct proc
+CONSTANT: EVFILT_TIMER    -7 ! timers
+CONSTANT: EVFILT_MACHPORT -8 ! Mach ports
+CONSTANT: EVFILT_FS       -9 ! Filesystem events
index e3fc11a688c8ec588f4ca2dc24eb5b80593668df..5e23626e1d4089ee6efeaf2da542d86e74131bd9 100644 (file)
@@ -1,4 +1,4 @@
-USE: alien.syntax
+USING: alien.syntax constants ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
@@ -12,11 +12,11 @@ C-STRUCT: kevent
 
 FUNCTION: int kevent ( int kq, kevent* changelist, size_t nchanges, kevent* eventlist, size_t nevents, timespec* timeout ) ;
 
-: EVFILT_READ     0 ; inline
-: EVFILT_WRITE    1 ; inline
-: EVFILT_AIO      2 ; inline ! attached to aio requests
-: EVFILT_VNODE    3 ; inline ! attached to vnodes
-: EVFILT_PROC     4 ; inline ! attached to struct proc
-: EVFILT_SIGNAL   5 ; inline ! attached to struct proc
-: EVFILT_TIMER    6 ; inline ! timers
-: EVFILT_SYSCOUNT 7 ; inline ! Filesystem events
+CONSTANT: EVFILT_READ     0
+CONSTANT: EVFILT_WRITE    1
+CONSTANT: EVFILT_AIO      2 ! attached to aio requests
+CONSTANT: EVFILT_VNODE    3 ! attached to vnodes
+CONSTANT: EVFILT_PROC     4 ! attached to struct proc
+CONSTANT: EVFILT_SIGNAL   5 ! attached to struct proc
+CONSTANT: EVFILT_TIMER    6 ! timers
+CONSTANT: EVFILT_SYSCOUNT 7 ! Filesystem events
index bc4be88c42311cbd3f6c7fb18a40aa8cd818fcb5..fc2e7d20cacd61ed0418d98b331820a366ef47b8 100644 (file)
@@ -1,4 +1,4 @@
-USE: alien.syntax
+USING: alien.syntax constants ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
@@ -12,10 +12,10 @@ C-STRUCT: kevent
 
 FUNCTION: int kevent ( int kq, kevent* changelist, int nchanges, kevent* eventlist, int nevents, timespec* timeout ) ;
 
-: EVFILT_READ     -1 ; inline
-: EVFILT_WRITE    -2 ; inline
-: EVFILT_AIO      -3 ; inline ! attached to aio requests
-: EVFILT_VNODE    -4 ; inline ! attached to vnodes
-: EVFILT_PROC     -5 ; inline ! attached to struct proc
-: EVFILT_SIGNAL   -6 ; inline ! attached to struct proc
-: EVFILT_TIMER    -7 ; inline ! timers
+CONSTANT: EVFILT_READ     -1
+CONSTANT: EVFILT_WRITE    -2
+CONSTANT: EVFILT_AIO      -3 ! attached to aio requests
+CONSTANT: EVFILT_VNODE    -4 ! attached to vnodes
+CONSTANT: EVFILT_PROC     -5 ! attached to struct proc
+CONSTANT: EVFILT_SIGNAL   -6 ! attached to struct proc
+CONSTANT: EVFILT_TIMER    -7 ! timers
index 72935807c320c5e52747fa32912c9ac55156607a..ebc3ab8bd1f7074ea63cb4b3727ff3ba7a4908b9 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 IN: unix.linux.epoll
-USING: alien.syntax math ;
+USING: alien.syntax math constants ;
 
 FUNCTION: int epoll_create ( int size ) ;
 
@@ -14,19 +14,19 @@ C-STRUCT: epoll-event
 
 FUNCTION: int epoll_wait ( int epfd, epoll_event* events, int maxevents, int timeout ) ;
 
-: EPOLL_CTL_ADD 1 ; inline ! Add a file decriptor to the interface.
-: EPOLL_CTL_DEL 2 ; inline ! Remove a file decriptor from the interface.
-: EPOLL_CTL_MOD 3 ; inline ! Change file decriptor epoll_event structure.
+CONSTANT: EPOLL_CTL_ADD 1 ! Add a file decriptor to the interface.
+CONSTANT: EPOLL_CTL_DEL 2 ! Remove a file decriptor from the interface.
+CONSTANT: EPOLL_CTL_MOD 3 ! Change file decriptor epoll_event structure.
 
-: EPOLLIN      HEX: 001 ; inline
-: EPOLLPRI     HEX: 002 ; inline
-: EPOLLOUT     HEX: 004 ; inline
-: EPOLLRDNORM  HEX: 040 ; inline
-: EPOLLRDBAND  HEX: 080 ; inline
-: EPOLLWRNORM  HEX: 100 ; inline
-: EPOLLWRBAND  HEX: 200 ; inline
-: EPOLLMSG     HEX: 400 ; inline
-: EPOLLERR     HEX: 008 ; inline
-: EPOLLHUP     HEX: 010 ; inline
-: EPOLLONESHOT 30 2^    ; inline
-: EPOLLET      31 2^    ; inline
+CONSTANT: EPOLLIN      HEX: 001
+CONSTANT: EPOLLPRI     HEX: 002
+CONSTANT: EPOLLOUT     HEX: 004
+CONSTANT: EPOLLRDNORM  HEX: 040
+CONSTANT: EPOLLRDBAND  HEX: 080
+CONSTANT: EPOLLWRNORM  HEX: 100
+CONSTANT: EPOLLWRBAND  HEX: 200
+CONSTANT: EPOLLMSG     HEX: 400
+CONSTANT: EPOLLERR     HEX: 008
+CONSTANT: EPOLLHUP     HEX: 010
+: EPOLLONESHOT ( -- n ) 30 2^ ; inline
+: EPOLLET      ( -- n ) 31 2^ ; inline
index 3385e454d2891d3dab207e7adc4522ae3cd3eca2..9084b41c502e220f2568c00fbc20a792fba42ed3 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: alien.syntax math math.bitwise ;\r
+USING: alien.syntax math math.bitwise constants ;\r
 IN: unix.linux.inotify\r
 \r
 C-STRUCT: inotify-event\r
@@ -11,31 +11,31 @@ C-STRUCT: inotify-event
     { "char[0]" "name" } ! stub for possible name\r
     ;\r
 \r
-: IN_ACCESS HEX: 1 ; inline         ! File was accessed\r
-: IN_MODIFY HEX: 2 ; inline         ! File was modified\r
-: IN_ATTRIB HEX: 4 ; inline         ! Metadata changed\r
-: IN_CLOSE_WRITE HEX: 8 ; inline    ! Writtable file was closed\r
-: IN_CLOSE_NOWRITE HEX: 10 ; inline ! Unwrittable file closed\r
-: IN_OPEN HEX: 20 ; inline          ! File was opened\r
-: IN_MOVED_FROM HEX: 40 ; inline    ! File was moved from X\r
-: IN_MOVED_TO HEX: 80 ; inline      ! File was moved to Y\r
-: IN_CREATE HEX: 100 ; inline       ! Subfile was created\r
-: IN_DELETE HEX: 200 ; inline       ! Subfile was deleted\r
-: IN_DELETE_SELF HEX: 400 ; inline  ! Self was deleted\r
-: IN_MOVE_SELF HEX: 800 ; inline    ! Self was moved\r
-\r
-: IN_UNMOUNT HEX: 2000 ; inline     ! Backing fs was unmounted\r
-: IN_Q_OVERFLOW HEX: 4000 ; inline  ! Event queued overflowed\r
-: IN_IGNORED HEX: 8000 ; inline     ! File was ignored\r
+CONSTANT: IN_ACCESS HEX: 1         ! File was accessed\r
+CONSTANT: IN_MODIFY HEX: 2         ! File was modified\r
+CONSTANT: IN_ATTRIB HEX: 4         ! Metadata changed\r
+CONSTANT: IN_CLOSE_WRITE HEX: 8    ! Writtable file was closed\r
+CONSTANT: IN_CLOSE_NOWRITE HEX: 10 ! Unwrittable file closed\r
+CONSTANT: IN_OPEN HEX: 20          ! File was opened\r
+CONSTANT: IN_MOVED_FROM HEX: 40    ! File was moved from X\r
+CONSTANT: IN_MOVED_TO HEX: 80      ! File was moved to Y\r
+CONSTANT: IN_CREATE HEX: 100       ! Subfile was created\r
+CONSTANT: IN_DELETE HEX: 200       ! Subfile was deleted\r
+CONSTANT: IN_DELETE_SELF HEX: 400  ! Self was deleted\r
+CONSTANT: IN_MOVE_SELF HEX: 800    ! Self was moved\r
+\r
+CONSTANT: IN_UNMOUNT HEX: 2000     ! Backing fs was unmounted\r
+CONSTANT: IN_Q_OVERFLOW HEX: 4000  ! Event queued overflowed\r
+CONSTANT: IN_IGNORED HEX: 8000     ! File was ignored\r
 \r
 : IN_CLOSE ( -- n ) IN_CLOSE_WRITE IN_CLOSE_NOWRITE bitor ; inline ! close\r
-: IN_MOVE ( -- n ) IN_MOVED_FROM IN_MOVED_TO bitor ; inline        ! moves\r
+: IN_MOVE ( -- n ) IN_MOVED_FROM IN_MOVED_TO bitor        ; inline ! moves\r
 \r
-: IN_ONLYDIR HEX: 1000000 ; inline     ! only watch the path if it is a directory\r
-: IN_DONT_FOLLOW HEX: 2000000 ; inline ! don't follow a sym link\r
-: IN_MASK_ADD HEX: 20000000 ; inline   ! add to the mask of an already existing watch\r
-: IN_ISDIR HEX: 40000000 ; inline      ! event occurred against dir\r
-: IN_ONESHOT HEX: 80000000 ; inline    ! only send event once\r
+CONSTANT: IN_ONLYDIR HEX: 1000000     ! only watch the path if it is a directory\r
+CONSTANT: IN_DONT_FOLLOW HEX: 2000000 ! don't follow a sym link\r
+CONSTANT: IN_MASK_ADD HEX: 20000000   ! add to the mask of an already existing watch\r
+CONSTANT: IN_ISDIR HEX: 40000000      ! event occurred against dir\r
+CONSTANT: IN_ONESHOT HEX: 80000000    ! only send event once\r
 \r
 : IN_CHANGE_EVENTS ( -- n )\r
     {\r
index 7a77dc9316788c9fddfb2d12280db62b53af4089..61ced5c97ba072507b7e1ceb98e08a5cb005cdb0 100644 (file)
@@ -1,36 +1,37 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax alias constants ;
 IN: unix
 
 ! Linux.
 
-: MAXPATHLEN 1024 ; inline
+CONSTANT: MAXPATHLEN 1024
 
-: O_RDONLY   HEX: 0000 ; inline
-: O_WRONLY   HEX: 0001 ; inline
-: O_RDWR     HEX: 0002 ; inline
-: O_CREAT    HEX: 0040 ; inline
-: O_EXCL     HEX: 0080 ; inline
-: O_NOCTTY   HEX: 0100 ; inline
-: O_TRUNC    HEX: 0200 ; inline
-: O_APPEND   HEX: 0400 ; inline
-: O_NONBLOCK HEX: 0800 ; inline
-: O_NDELAY O_NONBLOCK ; inline
+CONSTANT: O_RDONLY   HEX: 0000
+CONSTANT: O_WRONLY   HEX: 0001
+CONSTANT: O_RDWR     HEX: 0002
+CONSTANT: O_CREAT    HEX: 0040
+CONSTANT: O_EXCL     HEX: 0080
+CONSTANT: O_NOCTTY   HEX: 0100
+CONSTANT: O_TRUNC    HEX: 0200
+CONSTANT: O_APPEND   HEX: 0400
+CONSTANT: O_NONBLOCK HEX: 0800
 
-: SOL_SOCKET 1 ; inline
+ALIAS: O_NDELAY O_NONBLOCK
 
-: FD_SETSIZE 1024 ; inline
+CONSTANT: SOL_SOCKET 1
 
-: SO_REUSEADDR 2 ; inline
-: SO_OOBINLINE 10 ; inline
-: SO_SNDTIMEO HEX: 15 ; inline
-: SO_RCVTIMEO HEX: 14 ; inline
+CONSTANT: FD_SETSIZE 1024
 
-: F_SETFD 2 ; inline
-: FD_CLOEXEC 1 ; inline
+CONSTANT: SO_REUSEADDR 2
+CONSTANT: SO_OOBINLINE 10
+CONSTANT: SO_SNDTIMEO HEX: 15
+CONSTANT: SO_RCVTIMEO HEX: 14
 
-: F_SETFL 4 ; inline
+CONSTANT: F_SETFD 2
+CONSTANT: FD_CLOEXEC 1
+
+CONSTANT: F_SETFL 4
 
 C-STRUCT: addrinfo
     { "int" "flags" }
@@ -55,33 +56,33 @@ C-STRUCT: sockaddr-in6
     { { "uchar" 16 } "addr" }
     { "uint" "scopeid" } ;
 
-: max-un-path 108 ; inline
+CONSTANT: max-un-path 108
 
 C-STRUCT: sockaddr-un
     { "ushort" "family" }
     { { "char" max-un-path } "path" } ;
 
-: SOCK_STREAM 1 ; inline
-: SOCK_DGRAM 2 ; inline
+CONSTANT: SOCK_STREAM 1
+CONSTANT: SOCK_DGRAM 2
 
-: AF_UNSPEC 0 ; inline
-: AF_UNIX 1 ; inline
-: AF_INET 2 ; inline
-: AF_INET6 10 ; inline
+CONSTANT: AF_UNSPEC 0
+CONSTANT: AF_UNIX 1
+CONSTANT: AF_INET 2
+CONSTANT: AF_INET6 10
 
-: 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
+CONSTANT: IPPROTO_TCP 6
+CONSTANT: IPPROTO_UDP 17
 
-: AI_PASSIVE 1 ; inline
+CONSTANT: AI_PASSIVE 1
 
-: SEEK_SET 0 ; inline
-: SEEK_CUR 1 ; inline
-: SEEK_END 2 ; inline
+CONSTANT: SEEK_SET 0
+CONSTANT: SEEK_CUR 1
+CONSTANT: SEEK_END 2
 
 C-STRUCT: passwd
     { "char*"  "pw_name" }
@@ -99,134 +100,134 @@ C-STRUCT: dirent
     { "uchar" "d_type" }
     { { "char" 256 } "d_name" } ;
 
-: EPERM 1 ; inline
-: ENOENT 2 ; inline
-: ESRCH 3 ; inline
-: EINTR 4 ; inline
-: EIO 5 ; inline
-: ENXIO 6 ; inline
-: E2BIG 7 ; inline
-: ENOEXEC 8 ; inline
-: EBADF 9 ; inline
-: ECHILD 10 ; inline
-: EAGAIN 11 ; inline
-: ENOMEM 12 ; inline
-: EACCES 13 ; inline
-: EFAULT 14 ; inline
-: ENOTBLK 15 ; inline
-: EBUSY 16 ; inline
-: EEXIST 17 ; inline
-: EXDEV 18 ; inline
-: ENODEV 19 ; inline
-: ENOTDIR 20 ; inline
-: EISDIR 21 ; inline
-: EINVAL 22 ; inline
-: ENFILE 23 ; inline
-: EMFILE 24 ; inline
-: ENOTTY 25 ; inline
-: ETXTBSY 26 ; inline
-: EFBIG 27 ; inline
-: ENOSPC 28 ; inline
-: ESPIPE 29 ; inline
-: EROFS 30 ; inline
-: EMLINK 31 ; inline
-: EPIPE 32 ; inline
-: EDOM 33 ; inline
-: ERANGE 34 ; inline
-: EDEADLK 35 ; inline
-: ENAMETOOLONG 36 ; inline
-: ENOLCK 37 ; inline
-: ENOSYS 38 ; inline
-: ENOTEMPTY 39 ; inline
-: ELOOP 40 ; inline
-: EWOULDBLOCK EAGAIN ; inline
-: ENOMSG 42 ; inline
-: EIDRM 43 ; inline
-: ECHRNG 44 ; inline
-: EL2NSYNC 45 ; inline
-: EL3HLT 46 ; inline
-: EL3RST 47 ; inline
-: ELNRNG 48 ; inline
-: EUNATCH 49 ; inline
-: ENOCSI 50 ; inline
-: EL2HLT 51 ; inline
-: EBADE 52 ; inline
-: EBADR 53 ; inline
-: EXFULL 54 ; inline
-: ENOANO 55 ; inline
-: EBADRQC 56 ; inline
-: EBADSLT 57 ; inline
-: EDEADLOCK EDEADLK ; inline
-: EBFONT 59 ; inline
-: ENOSTR 60 ; inline
-: ENODATA 61 ; inline
-: ETIME 62 ; inline
-: ENOSR 63 ; inline
-: ENONET 64 ; inline
-: ENOPKG 65 ; inline
-: EREMOTE 66 ; inline
-: ENOLINK 67 ; inline
-: EADV 68 ; inline
-: ESRMNT 69 ; inline
-: ECOMM 70 ; inline
-: EPROTO 71 ; inline
-: EMULTIHOP 72 ; inline
-: EDOTDOT 73 ; inline
-: EBADMSG 74 ; inline
-: EOVERFLOW 75 ; inline
-: ENOTUNIQ 76 ; inline
-: EBADFD 77 ; inline
-: EREMCHG 78 ; inline
-: ELIBACC 79 ; inline
-: ELIBBAD 80 ; inline
-: ELIBSCN 81 ; inline
-: ELIBMAX 82 ; inline
-: ELIBEXEC 83 ; inline
-: EILSEQ 84 ; inline
-: ERESTART 85 ; inline
-: ESTRPIPE 86 ; inline
-: EUSERS 87 ; inline
-: ENOTSOCK 88 ; inline
-: EDESTADDRREQ 89 ; inline
-: EMSGSIZE 90 ; inline
-: EPROTOTYPE 91 ; inline
-: ENOPROTOOPT 92 ; inline
-: EPROTONOSUPPORT 93 ; inline
-: ESOCKTNOSUPPORT 94 ; inline
-: EOPNOTSUPP 95 ; inline
-: EPFNOSUPPORT 96 ; inline
-: EAFNOSUPPORT 97 ; inline
-: EADDRINUSE 98 ; inline
-: EADDRNOTAVAIL 99 ; inline
-: ENETDOWN 100 ; inline
-: ENETUNREACH 101 ; inline
-: ENETRESET 102 ; inline
-: ECONNABORTED 103 ; inline
-: ECONNRESET 104 ; inline
-: ENOBUFS 105 ; inline
-: EISCONN 106 ; inline
-: ENOTCONN 107 ; inline
-: ESHUTDOWN 108 ; inline
-: ETOOMANYREFS 109 ; inline
-: ETIMEDOUT 110 ; inline
-: ECONNREFUSED 111 ; inline
-: EHOSTDOWN 112 ; inline
-: EHOSTUNREACH 113 ; inline
-: EALREADY 114 ; inline
-: EINPROGRESS 115 ; inline
-: ESTALE 116 ; inline
-: EUCLEAN 117 ; inline
-: ENOTNAM 118 ; inline
-: ENAVAIL 119 ; inline
-: EISNAM 120 ; inline
-: EREMOTEIO 121 ; inline
-: EDQUOT 122 ; inline
-: ENOMEDIUM 123 ; inline
-: EMEDIUMTYPE 124 ; inline
-: ECANCELED 125 ; inline
-: ENOKEY 126 ; inline
-: EKEYEXPIRED 127 ; inline
-: EKEYREVOKED 128 ; inline
-: EKEYREJECTED 129 ; inline
-: EOWNERDEAD 130 ; inline
-: ENOTRECOVERABLE 131 ; inline
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EAGAIN 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EDEADLK 35
+CONSTANT: ENAMETOOLONG 36
+CONSTANT: ENOLCK 37
+CONSTANT: ENOSYS 38
+CONSTANT: ENOTEMPTY 39
+CONSTANT: ELOOP 40
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: ENOMSG 42
+CONSTANT: EIDRM 43
+CONSTANT: ECHRNG 44
+CONSTANT: EL2NSYNC 45
+CONSTANT: EL3HLT 46
+CONSTANT: EL3RST 47
+CONSTANT: ELNRNG 48
+CONSTANT: EUNATCH 49
+CONSTANT: ENOCSI 50
+CONSTANT: EL2HLT 51
+CONSTANT: EBADE 52
+CONSTANT: EBADR 53
+CONSTANT: EXFULL 54
+CONSTANT: ENOANO 55
+CONSTANT: EBADRQC 56
+CONSTANT: EBADSLT 57
+ALIAS: EDEADLOCK EDEADLK
+CONSTANT: EBFONT 59
+CONSTANT: ENOSTR 60
+CONSTANT: ENODATA 61
+CONSTANT: ETIME 62
+CONSTANT: ENOSR 63
+CONSTANT: ENONET 64
+CONSTANT: ENOPKG 65
+CONSTANT: EREMOTE 66
+CONSTANT: ENOLINK 67
+CONSTANT: EADV 68
+CONSTANT: ESRMNT 69
+CONSTANT: ECOMM 70
+CONSTANT: EPROTO 71
+CONSTANT: EMULTIHOP 72
+CONSTANT: EDOTDOT 73
+CONSTANT: EBADMSG 74
+CONSTANT: EOVERFLOW 75
+CONSTANT: ENOTUNIQ 76
+CONSTANT: EBADFD 77
+CONSTANT: EREMCHG 78
+CONSTANT: ELIBACC 79
+CONSTANT: ELIBBAD 80
+CONSTANT: ELIBSCN 81
+CONSTANT: ELIBMAX 82
+CONSTANT: ELIBEXEC 83
+CONSTANT: EILSEQ 84
+CONSTANT: ERESTART 85
+CONSTANT: ESTRPIPE 86
+CONSTANT: EUSERS 87
+CONSTANT: ENOTSOCK 88
+CONSTANT: EDESTADDRREQ 89
+CONSTANT: EMSGSIZE 90
+CONSTANT: EPROTOTYPE 91
+CONSTANT: ENOPROTOOPT 92
+CONSTANT: EPROTONOSUPPORT 93
+CONSTANT: ESOCKTNOSUPPORT 94
+CONSTANT: EOPNOTSUPP 95
+CONSTANT: EPFNOSUPPORT 96
+CONSTANT: EAFNOSUPPORT 97
+CONSTANT: EADDRINUSE 98
+CONSTANT: EADDRNOTAVAIL 99
+CONSTANT: ENETDOWN 100
+CONSTANT: ENETUNREACH 101
+CONSTANT: ENETRESET 102
+CONSTANT: ECONNABORTED 103
+CONSTANT: ECONNRESET 104
+CONSTANT: ENOBUFS 105
+CONSTANT: EISCONN 106
+CONSTANT: ENOTCONN 107
+CONSTANT: ESHUTDOWN 108
+CONSTANT: ETOOMANYREFS 109
+CONSTANT: ETIMEDOUT 110
+CONSTANT: ECONNREFUSED 111
+CONSTANT: EHOSTDOWN 112
+CONSTANT: EHOSTUNREACH 113
+CONSTANT: EALREADY 114
+CONSTANT: EINPROGRESS 115
+CONSTANT: ESTALE 116
+CONSTANT: EUCLEAN 117
+CONSTANT: ENOTNAM 118
+CONSTANT: ENAVAIL 119
+CONSTANT: EISNAM 120
+CONSTANT: EREMOTEIO 121
+CONSTANT: EDQUOT 122
+CONSTANT: ENOMEDIUM 123
+CONSTANT: EMEDIUMTYPE 124
+CONSTANT: ECANCELED 125
+CONSTANT: ENOKEY 126
+CONSTANT: EKEYEXPIRED 127
+CONSTANT: EKEYREVOKED 128
+CONSTANT: EKEYREJECTED 129
+CONSTANT: EOWNERDEAD 130
+CONSTANT: ENOTRECOVERABLE 131
index 04ba4d3438a2410ae22c3a8eb6f9513b80b238a0..ec782f5164ef74befd3f66dce0fc61f15e69e4af 100644 (file)
@@ -1,6 +1,6 @@
 USING: kernel alien.c-types alien.strings sequences math alien.syntax unix
 vectors kernel namespaces continuations threads assocs vectors
-io.backend.unix io.encodings.utf8 unix.utilities ;
+io.backend.unix io.encodings.utf8 unix.utilities constants ;
 IN: unix.process
 
 ! Low-level Unix process launching utilities. These are used
@@ -39,34 +39,34 @@ FUNCTION: int execve ( char* path, char** argv, char** envp ) ;
     [ [ fork-process dup zero? ] dip [ drop ] prepose ] dip
     if ; inline
 
-: SIGKILL 9 ; inline
-: SIGTERM 15 ; inline
+CONSTANT: SIGKILL 9
+CONSTANT: SIGTERM 15
 
 FUNCTION: int kill ( pid_t pid, int sig ) ;
 
-: PRIO_PROCESS 0 ; inline
-: PRIO_PGRP 1 ; inline
-: PRIO_USER 2 ; inline
+CONSTANT: PRIO_PROCESS 0
+CONSTANT: PRIO_PGRP 1
+CONSTANT: PRIO_USER 2
 
-: PRIO_MIN -20 ; inline
-: PRIO_MAX 20 ; inline
+CONSTANT: PRIO_MIN -20
+CONSTANT: PRIO_MAX 20
 
 ! which/who = 0 for current process
 FUNCTION: int getpriority ( int which, int who ) ;
 FUNCTION: int setpriority ( int which, int who, int prio ) ;
 
 : set-priority ( n -- )
-    0 0 rot setpriority io-error ;
+    [ 0 0 ] dip setpriority io-error ;
 
 ! Flags for waitpid
 
-: WNOHANG   1 ; inline
-: WUNTRACED 2 ; inline
+CONSTANT: WNOHANG   1
+CONSTANT: WUNTRACED 2
 
-: WSTOPPED   2 ; inline
-: WEXITED    4 ; inline
-: WCONTINUED 8 ; inline
-: WNOWAIT    HEX: 1000000 ; inline
+CONSTANT: WSTOPPED   2
+CONSTANT: WEXITED    4
+CONSTANT: WCONTINUED 8
+CONSTANT: WNOWAIT    HEX: 1000000
 
 ! Examining status
 
index 2bca20c6b6fba3887b41d2f0f85e1655d7097274..fc7e152931043663243aa4b74ce6d4a307af2389 100644 (file)
@@ -1,30 +1,30 @@
 ! Copyright (C) 2006 Patrick Mauritz.
 ! See http://factorcode.org/license.txt for BSD license.
 IN: unix
-USING: alien.syntax system kernel ;
+USING: alien.syntax system kernel layouts constants ;
 
 ! Solaris.
 
-: O_RDONLY  HEX: 0000 ; inline
-: O_WRONLY  HEX: 0001 ; inline
-: O_RDWR    HEX: 0002 ; inline
-: O_APPEND  HEX: 0008 ; inline
-: O_CREAT   HEX: 0100 ; inline
-: O_TRUNC   HEX: 0200 ; inline
+CONSTANT: O_RDONLY  HEX: 0000
+CONSTANT: O_WRONLY  HEX: 0001
+CONSTANT: O_RDWR    HEX: 0002
+CONSTANT: O_APPEND  HEX: 0008
+CONSTANT: O_CREAT   HEX: 0100
+CONSTANT: O_TRUNC   HEX: 0200
 
-: SEEK_END 2 ; inline
+CONSTANT: SEEK_END 2
 
-: SOL_SOCKET HEX: ffff ; inline
+CONSTANT: SOL_SOCKET HEX: ffff
 
-: FD_SETSIZE cell 4 = 1024 65536 ? ; inline
+: FD_SETSIZE ( -- n ) cell 4 = 1024 65536 ? ;
 
-: SO_REUSEADDR 4 ; inline
-: SO_OOBINLINE HEX: 0100 ; inline
-: SO_SNDTIMEO HEX: 1005 ; inline
-: SO_RCVTIMEO HEX: 1006 ; inline
+CONSTANT: SO_REUSEADDR 4
+CONSTANT: SO_OOBINLINE HEX: 0100
+CONSTANT: SO_SNDTIMEO HEX: 1005
+CONSTANT: SO_RCVTIMEO HEX: 1006
 
-: F_SETFL 4 ;    ! set file status flags
-: O_NONBLOCK HEX: 80 ; ! no delay
+CONSTANT: F_SETFL 4    ! set file status flags
+CONSTANT: O_NONBLOCK HEX: 80 ! no delay
 
 C-STRUCT: addrinfo
     { "int" "flags" }
@@ -58,24 +58,24 @@ C-STRUCT: sockaddr-un
     { "ushort" "family" }
     { { "char" max-un-path } "path" } ;
 
-: EINTR 4 ; inline
-: EAGAIN 11 ; inline
-: EINPROGRESS 150 ; inline
+CONSTANT: EINTR 4
+CONSTANT: EAGAIN 11
+CONSTANT: EINPROGRESS 150
 
-: SOCK_STREAM 2 ; inline
-: SOCK_DGRAM 1 ; inline
+CONSTANT: SOCK_STREAM 2
+CONSTANT: SOCK_DGRAM 1
 
-: AF_UNSPEC 0 ; inline
-: AF_UNIX 1 ; inline
-: AF_INET 2 ; inline
-: AF_INET6 26 ; inline
+CONSTANT: AF_UNSPEC 0
+CONSTANT: AF_UNIX 1
+CONSTANT: AF_INET 2
+CONSTANT: AF_INET6 26
 
-: 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
+CONSTANT: IPPROTO_TCP 6
+CONSTANT: IPPROTO_UDP 17
 
-: AI_PASSIVE 8 ; inline
+CONSTANT: AI_PASSIVE 8
index ded06595de7c14bbd3e19f09bfa542b121725dc1..35963cf4edf0d157b16cf5de948454db3d928683 100644 (file)
@@ -25,5 +25,5 @@ C-STRUCT: stat
 FUNCTION: int __xstat  ( int ver, char* pathname, stat* buf ) ;
 FUNCTION: int __lxstat ( int ver, char* pathname, stat* buf ) ;
 
-:  stat ( pathname buf -- int ) 3 -rot __xstat ;
-: lstat ( pathname buf -- int ) 3 -rot __lxstat ;
+:  stat ( pathname buf -- int ) [ 3 ] 2dip __xstat ;
+: lstat ( pathname buf -- int ) [ 3 ] 2dip __lxstat ;
index f406b2ccee306f183156d484feef077cf6cd889d..81b33f322789ee1b0511c43c3abc12f536aa4e41 100644 (file)
@@ -26,5 +26,5 @@ C-STRUCT: stat
 FUNCTION: int __xstat  ( int ver, char* pathname, stat* buf ) ;
 FUNCTION: int __lxstat ( int ver, char* pathname, stat* buf ) ;
 
-:  stat ( pathname buf -- int ) 1 -rot __xstat ;
-: lstat ( pathname buf -- int ) 1 -rot __lxstat ;
+:  stat ( pathname buf -- int ) [ 1 ] 2dip __xstat ;
+: lstat ( pathname buf -- int ) [ 1 ] 2dip __lxstat ;
index d6a60ba5c88f385b773096fb87a8be8f40001526..c4cf5cc7a0951773d0df22eece0d5dbd47aa8b81 100644 (file)
@@ -25,5 +25,5 @@ C-STRUCT: stat
 FUNCTION: int __stat30  ( char* pathname, stat* buf ) ;
 FUNCTION: int __lstat30 ( char* pathname, stat* buf ) ;
 
-: stat ( pathname buf -- n ) __stat30 ; inline
-: lstat ( pathname buf -- n ) __lstat30 ; inline
+: stat ( pathname buf -- n ) __stat30 ;
+: lstat ( pathname buf -- n ) __lstat30 ;
index 1a1f97507c9a9fd6f2560b192afcb22505610c7a..cd9286c6ba410be22bea6375fae133fad9884e13 100644 (file)
@@ -25,5 +25,5 @@ C-STRUCT: stat
 FUNCTION: int __stat13 ( char* pathname, stat* buf ) ;
 FUNCTION: int __lstat13 ( char* pathname, stat* buf ) ;
 
-: stat ( pathname buf -- n ) __stat13 ; inline
-: lstat ( pathname buf -- n ) __lstat13 ; inline
+: stat ( pathname buf -- n ) __stat13 ;
+: lstat ( pathname buf -- n ) __lstat13 ;
index a3f8a5ce824764d4714451ffd113db1b2e9f83f6..2164d89ac61c17e09f46a6febbfd94a3972efa74 100644 (file)
@@ -1,19 +1,19 @@
 USING: kernel system combinators alien.syntax alien.c-types
-math io.backend.unix vocabs.loader unix ;
+math io.backend.unix vocabs.loader unix constants ;
 IN: unix.stat
 
 ! File Types
 
-: S_IFMT   OCT: 170000 ; ! These bits determine file type.
+CONSTANT: S_IFMT   OCT: 170000   ! These bits determine file type.
 
-: S_IFDIR  OCT:  40000 ; inline   ! Directory.
-: S_IFCHR  OCT:  20000 ; inline   ! Character device.
-: S_IFBLK  OCT:  60000 ; inline   ! Block device.
-: S_IFREG  OCT: 100000 ; inline   ! Regular file.
-: S_IFIFO  OCT: 010000 ; inline   ! FIFO.
-: S_IFLNK  OCT: 120000 ; inline   ! Symbolic link.
-: S_IFSOCK OCT: 140000 ; inline   ! Socket.
-: S_IFWHT  OCT: 160000 ; inline   ! Whiteout.
+CONSTANT: S_IFDIR  OCT:  40000   ! Directory.
+CONSTANT: S_IFCHR  OCT:  20000   ! Character device.
+CONSTANT: S_IFBLK  OCT:  60000   ! Block device.
+CONSTANT: S_IFREG  OCT: 100000   ! Regular file.
+CONSTANT: S_IFIFO  OCT: 010000   ! FIFO.
+CONSTANT: S_IFLNK  OCT: 120000   ! Symbolic link.
+CONSTANT: S_IFSOCK OCT: 140000   ! Socket.
+CONSTANT: S_IFWHT  OCT: 160000   ! Whiteout.
 
 FUNCTION: int chmod ( char* path, mode_t mode ) ;
 FUNCTION: int fchmod ( int fd, mode_t mode ) ;
@@ -22,8 +22,8 @@ FUNCTION: int mkdir ( char* path, mode_t mode ) ;
 C-STRUCT: fsid
     { { "int" 2 } "__val" } ;
 
-    TYPEDEF: fsid __fsid_t
-    TYPEDEF: fsid fsid_t
+TYPEDEF: fsid __fsid_t
+TYPEDEF: fsid fsid_t
 
 << os {
     { linux   [ "unix.stat.linux"   require ] }
index 038178f6f8351f018017f4dc2db51a34874dffe1..17b58aede60d5944efdf3d4d600016cc8a56dc56 100644 (file)
@@ -1,11 +1,11 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statfs.freebsd
 
-: MFSNAMELEN      16            ; inline ! length of type name including null */
-: MNAMELEN        88            ; inline ! size of on/from name bufs
-: STATFS_VERSION  HEX: 20030518 ; inline ! current version number 
+CONSTANT: MFSNAMELEN      16            ! length of type name including null */
+CONSTANT: MNAMELEN        88            ! size of on/from name bufs
+CONSTANT: STATFS_VERSION  HEX: 20030518 ! current version number 
 
 C-STRUCT: statfs
     { "uint32_t" "f_version" }
index 210e9fbe12ede628e582c7fb3265d5a4c805d705..829a49c81f913f4ca536d6dca62daebf98626c9a 100644 (file)
@@ -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
+ALIAS: 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" } ;
index 378e335c115e265760775a941cc740ce676de4bc..d9e6b867b690267ca801b51ed51ed7d1d0a0218c 100644 (file)
@@ -1,10 +1,10 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statfs.openbsd
 
-: MFSNAMELEN 16 ; inline
-: MNAMELEN 90 ; inline
+CONSTANT: MFSNAMELEN 16
+CONSTANT: MNAMELEN 90
 
 C-STRUCT: statfs
     { "u_int32_t"       "f_flags" }
index 7d1a6afb6146e8a4b7778d9d9904fc7768d6e6a3..a2a316846464926b51ea39cbf34823396e6ec1d8 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statvfs.freebsd
 
 C-STRUCT: statvfs
@@ -17,7 +17,7 @@ C-STRUCT: statvfs
     { "ulong"   "f_namemax" } ;
 
 ! Flags
-: ST_RDONLY   HEX: 1 ; inline ! Read-only file system
-: ST_NOSUID   HEX: 2 ; inline ! Does not honor setuid/setgid
+CONSTANT: ST_RDONLY   HEX: 1 ! Read-only file system
+CONSTANT: ST_NOSUID   HEX: 2 ! Does not honor setuid/setgid
 
 FUNCTION: int statvfs ( char* path, statvfs* buf ) ;
index 3bfbffa197f88e4e1b6d17a63015debd820cf910..5c04468ad39e81ed9a261596ed4ec88ef0c9b898 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statvfs.linux
 
 C-STRUCT: statvfs64
@@ -19,13 +19,13 @@ C-STRUCT: statvfs64
 
 FUNCTION: int statvfs64 ( char* path, statvfs64* buf ) ;
 
-: ST_RDONLY 1 ; inline        ! Mount read-only.
-: ST_NOSUID 2 ; inline        ! Ignore suid and sgid bits.
-: ST_NODEV 4 ; inline         ! Disallow access to device special files.
-: ST_NOEXEC 8 ; inline        ! Disallow program execution.
-: ST_SYNCHRONOUS 16 ; inline  ! Writes are synced at once.
-: ST_MANDLOCK 64 ; inline     ! Allow mandatory locks on an FS.
-: ST_WRITE 128 ; inline       ! Write on file/directory/symlink.
-: ST_APPEND 256 ; inline      ! Append-only file.
-: ST_IMMUTABLE 512 ; inline   ! Immutable file.
-: ST_NOATIME 1024 ; inline    ! Do not update access times.
+CONSTANT: ST_RDONLY 1        ! Mount read-only.
+CONSTANT: ST_NOSUID 2        ! Ignore suid and sgid bits.
+CONSTANT: ST_NODEV 4         ! Disallow access to device special files.
+CONSTANT: ST_NOEXEC 8        ! Disallow program execution.
+CONSTANT: ST_SYNCHRONOUS 16  ! Writes are synced at once.
+CONSTANT: ST_MANDLOCK 64     ! Allow mandatory locks on an FS.
+CONSTANT: ST_WRITE 128       ! Write on file/directory/symlink.
+CONSTANT: ST_APPEND 256      ! Append-only file.
+CONSTANT: ST_IMMUTABLE 512   ! Immutable file.
+CONSTANT: ST_NOATIME 1024    ! Do not update access times.
index 7078ff9f33ad3c587d703d5059ee50542f19ead6..fc85b9d9dc013e38c8d5ffb21c3c050be052e139 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statvfs.macosx
 
 C-STRUCT: statvfs
@@ -17,7 +17,7 @@ C-STRUCT: statvfs
     { "ulong"   "f_namemax" } ;
 
 ! Flags
-: ST_RDONLY   HEX: 1 ; inline ! Read-only file system
-: ST_NOSUID   HEX: 2 ; inline ! Does not honor setuid/setgid
+CONSTANT: ST_RDONLY   HEX: 1 ! Read-only file system
+CONSTANT: ST_NOSUID   HEX: 2 ! Does not honor setuid/setgid
 
 FUNCTION: int statvfs ( char* path, statvfs* buf ) ;
index cf575c74b16d81e54aa1c84bc1e7035e75c90b5d..e3e54fb4e2dbd8f2876cea9fdf8cc3f1730f9405 100644 (file)
@@ -1,33 +1,33 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statvfs.netbsd
 
-: _VFS_NAMELEN    32   ; inline
-: _VFS_MNAMELEN   1024 ; inline
+CONSTANT: _VFS_NAMELEN    32
+CONSTANT: _VFS_MNAMELEN   1024
 
 C-STRUCT: statvfs
-    { "ulong"   "f_flag" }   
+    { "ulong"   "f_flag" }
     { "ulong"   "f_bsize" }
-    { "ulong"   "f_frsize" }  
-    { "ulong"   "f_iosize" }  
-    { "fsblkcnt_t" "f_blocks" }       
-    { "fsblkcnt_t" "f_bfree" } 
-    { "fsblkcnt_t" "f_bavail" }       
-    { "fsblkcnt_t" "f_bresvd" }       
+    { "ulong"   "f_frsize" }
+    { "ulong"   "f_iosize" }
+    { "fsblkcnt_t" "f_blocks" }
+    { "fsblkcnt_t" "f_bfree" }
+    { "fsblkcnt_t" "f_bavail" }
+    { "fsblkcnt_t" "f_bresvd" }
     { "fsfilcnt_t" "f_files" }
     { "fsfilcnt_t" "f_ffree" }
-    { "fsfilcnt_t" "f_favail" }       
-    { "fsfilcnt_t" "f_fresvd" }       
-    { "uint64_t"   "f_syncreads" }    
-    { "uint64_t"   "f_syncwrites" }   
-    { "uint64_t"   "f_asyncreads" }   
-    { "uint64_t"   "f_asyncwrites" }  
+    { "fsfilcnt_t" "f_favail" }
+    { "fsfilcnt_t" "f_fresvd" }
+    { "uint64_t"   "f_syncreads" }
+    { "uint64_t"   "f_syncwrites" }
+    { "uint64_t"   "f_asyncreads" }
+    { "uint64_t"   "f_asyncwrites" }
     { "fsid_t"    "f_fsidx" }
     { "ulong"   "f_fsid" }
-    { "ulong"   "f_namemax" }      
+    { "ulong"   "f_namemax" }
     { "uid_t"   "f_owner" }
-    { { "uint32_t" 4 } "f_spare" }     
+    { { "uint32_t" 4 } "f_spare" }
     { { "char" _VFS_NAMELEN } "f_fstypename" }
     { { "char" _VFS_MNAMELEN } "f_mntonname" }
     { { "char" _VFS_MNAMELEN } "f_mntfromname" } ;
index 3f9353f92692a8295f6683667a96f81bf38b56ef..76c2af912779b54fb8474a08d45cc548c8c1f5a5 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax ;
+USING: alien.syntax constants ;
 IN: unix.statvfs.openbsd
 
 C-STRUCT: statvfs
@@ -16,7 +16,7 @@ C-STRUCT: statvfs
     { "ulong" "f_flag" }
     { "ulong" "f_namemax" } ;
 
-: ST_RDONLY       1 ; inline
-: ST_NOSUID       2 ; inline
+CONSTANT: ST_RDONLY       1
+CONSTANT: ST_NOSUID       2
 
 FUNCTION: int statvfs ( char* path, statvfs* buf ) ;
index 2652a95d3ed75e58b88a416c4d40396f110cd6a0..c0e496a0413d9045fb8eb56a4facc954bf877899 100644 (file)
@@ -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
-
-: MAP_FILE    0 ; inline
-: MAP_SHARED  1 ; inline
-: MAP_PRIVATE 2 ; inline
-
-: MAP_FAILED -1 <alien> ; inline
-
-: NGROUPS_MAX 16 ; inline
-
-: 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: PROT_NONE   0
+CONSTANT: PROT_READ   1
+CONSTANT: PROT_WRITE  2
+CONSTANT: PROT_EXEC   4
+                       
+CONSTANT: MAP_FILE    0
+CONSTANT: MAP_SHARED  1
+CONSTANT: MAP_PRIVATE 2
+
+: MAP_FAILED ( -- alien ) -1 <alien> ; inline
+
+CONSTANT: NGROUPS_MAX 16
+
+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" }
@@ -168,7 +168,7 @@ FUNCTION: int readdir_r ( void* dirp, dirent* entry, dirent** result ) ;
 
 FUNCTION: ssize_t readlink ( char* path, char* buf, size_t bufsize ) ;
 
-: PATH_MAX 1024 ; inline
+CONSTANT: PATH_MAX 1024
 
 : read-symbolic-link ( path -- path )
     PATH_MAX <byte-array> dup [
index e1756daa0071068518b8b0e5a9c81c2eb1ddd6e5..30dac2de1ff6d157128aa1a2c73ee5a62e4be3a6 100644 (file)
@@ -3,21 +3,21 @@
 USING: alien.c-types alien.syntax combinators continuations
 io.encodings.string io.encodings.utf8 kernel sequences strings
 unix calendar system accessors unix.time calendar.unix
-vocabs.loader ;
+vocabs.loader constants ;
 IN: unix.utmpx
 
-: EMPTY 0 ; inline
-: RUN_LVL 1 ; inline
-: BOOT_TIME 2 ; inline
-: OLD_TIME 3 ; inline
-: NEW_TIME 4 ; inline
-: INIT_PROCESS 5 ; inline
-: LOGIN_PROCESS 6 ; inline
-: USER_PROCESS 7 ; inline
-: DEAD_PROCESS 8 ; inline
-: ACCOUNTING 9 ; inline
-: SIGNATURE 10 ; inline
-: SHUTDOWN_TIME 11 ; inline
+CONSTANT: EMPTY 0
+CONSTANT: RUN_LVL 1
+CONSTANT: BOOT_TIME 2
+CONSTANT: OLD_TIME 3
+CONSTANT: NEW_TIME 4
+CONSTANT: INIT_PROCESS 5
+CONSTANT: LOGIN_PROCESS 6
+CONSTANT: USER_PROCESS 7
+CONSTANT: DEAD_PROCESS 8
+CONSTANT: ACCOUNTING 9
+CONSTANT: SIGNATURE 10
+CONSTANT: SHUTDOWN_TIME 11
 
 FUNCTION: void setutxent ( ) ;
 FUNCTION: void endutxent ( ) ;
index ea40594964760773e50c6efe0ccb165abd5d80f8..e4f64ca8f80c42119c766b815d82d2b7e73ed0c4 100644 (file)
@@ -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
index 251b59a4d837bcfe75460d928bdd845bc9e480a1..0d95c06a87bf77f98da2403a45e6761ae2791448 100644 (file)
@@ -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
-
-: MS_DEF_DH_SCHANNEL_PROV
-    "Microsoft DH Schannel Cryptographic Provider" ; inline
-
-: MS_DEF_DSS_DH_PROV
-    "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" ; inline
-
-: MS_DEF_DSS_PROV
-    "Microsoft Base DSS Cryptographic Provider" ; inline
-
-: MS_DEF_PROV
-    "Microsoft Base Cryptographic Provider v1.0" ; inline
-
-: MS_DEF_RSA_SCHANNEL_PROV
-    "Microsoft RSA Schannel Cryptographic Provider" ; 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
+
+CONSTANT: MS_DEF_DH_SCHANNEL_PROV "Microsoft DH Schannel Cryptographic Provider"
+
+CONSTANT: MS_DEF_DSS_DH_PROV
+    "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
+
+CONSTANT: MS_DEF_DSS_PROV
+    "Microsoft Base DSS Cryptographic Provider"
+
+CONSTANT: MS_DEF_PROV
+    "Microsoft Base Cryptographic Provider v1.0"
+
+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
-
-: STANDARD_RIGHTS_READ       READ_CONTROL ; inline
-: STANDARD_RIGHTS_WRITE      READ_CONTROL ; inline
-: STANDARD_RIGHTS_EXECUTE    READ_CONTROL ; inline
-
-: 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: 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
+
+ALIAS: STANDARD_RIGHTS_READ       READ_CONTROL
+ALIAS: STANDARD_RIGHTS_WRITE      READ_CONTROL
+ALIAS: STANDARD_RIGHTS_EXECUTE    READ_CONTROL
+
+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 )
     {
old mode 100644 (file)
new mode 100755 (executable)
index 0c75f43..76cba4f
@@ -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
-
-: DI8DEVCLASS_ALL             0 ; inline
-: DI8DEVCLASS_DEVICE          1 ; inline
-: DI8DEVCLASS_POINTER         2 ; inline
-: DI8DEVCLASS_KEYBOARD        3 ; inline
-: DI8DEVCLASS_GAMECTRL        4 ; inline
-
-: 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
-
-: DIENUM_STOP             0 ; inline
-: DIENUM_CONTINUE         1 ; inline
-
-: DIDF_ABSAXIS            1 ;
-: DIDF_RELAXIS            2 ;
-
-: DIDFT_ALL           HEX: 00000000 ; inline
-
-: DIDFT_RELAXIS       HEX: 00000001 ; inline
-: DIDFT_ABSAXIS       HEX: 00000002 ; inline
-: DIDFT_AXIS          HEX: 00000003 ; inline
-
-: DIDFT_PSHBUTTON     HEX: 00000004 ; inline
-: DIDFT_TGLBUTTON     HEX: 00000008 ; inline
-: DIDFT_BUTTON        HEX: 0000000C ; inline
-
-: DIDFT_POV           HEX: 00000010 ; inline
-: DIDFT_COLLECTION    HEX: 00000040 ; inline
-: DIDFT_NODATA        HEX: 00000080 ; inline
-
-: DIDFT_ANYINSTANCE   HEX: 00FFFF00 ; inline
-: DIDFT_INSTANCEMASK  DIDFT_ANYINSTANCE ; inline
+CONSTANT: DIRECTINPUT_VERSION HEX: 0800
+                               
+CONSTANT: DI8DEVCLASS_ALL             0
+CONSTANT: DI8DEVCLASS_DEVICE          1
+CONSTANT: DI8DEVCLASS_POINTER         2
+CONSTANT: DI8DEVCLASS_KEYBOARD        3
+CONSTANT: DI8DEVCLASS_GAMECTRL        4
+
+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
+                                               
+CONSTANT: DIENUM_STOP             0
+CONSTANT: DIENUM_CONTINUE         1
+
+CONSTANT: DIDF_ABSAXIS            1
+CONSTANT: DIDF_RELAXIS            2
+
+CONSTANT: DIDFT_ALL           HEX: 00000000
+         
+CONSTANT: DIDFT_RELAXIS       HEX: 00000001
+CONSTANT: DIDFT_ABSAXIS       HEX: 00000002
+CONSTANT: DIDFT_AXIS          HEX: 00000003
+         
+CONSTANT: DIDFT_PSHBUTTON     HEX: 00000004
+CONSTANT: DIDFT_TGLBUTTON     HEX: 00000008
+CONSTANT: DIDFT_BUTTON        HEX: 0000000C
+         
+CONSTANT: DIDFT_POV           HEX: 00000010
+CONSTANT: DIDFT_COLLECTION    HEX: 00000040
+CONSTANT: DIDFT_NODATA        HEX: 00000080
+         
+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
-
-: 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
-
-: 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
-
-: 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
-
-: 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
-
-: DIK_CIRCUMFLEX      DIK_PREVTRACK ; inline
-
-: 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: DIDFT_NOCOLLECTION      HEX: 00FFFF00
+
+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
+
+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
+
+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
+
+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
+
+ALIAS: DIK_CIRCUMFLEX      DIK_PREVTRACK
+
+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
-
-: DIPH_DEVICE             0 ; inline
-: DIPH_BYOFFSET           1 ; inline
-: DIPH_BYID               2 ; inline
-: DIPH_BYUSAGE            3 ; inline
+CONSTANT: DIPROPRANGE_NOMIN       HEX: 80000000
+CONSTANT: DIPROPRANGE_NOMAX       HEX: 7FFFFFFF
+CONSTANT: MAXCPOINTSNUM           8
 
+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
-
-: DIPROPAXISMODE_ABS      0 ; inline
-: DIPROPAXISMODE_REL      1 ; inline
-
-: 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
-
-: DIPROPAUTOCENTER_OFF    0 ; inline
-: DIPROPAUTOCENTER_ON     1 ; inline
-
-: DIPROP_CALIBRATIONMODE     10 <alien> ; inline
-
-: DIPROPCALIBRATIONMODE_COOKED    0 ; inline
-: DIPROPCALIBRATIONMODE_RAW       1 ; inline
-
-: 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
-
-: 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
+: DIPROP_BUFFERSIZE ( -- alien ) 1 <alien> ; inline
+: DIPROP_AXISMODE   ( -- alien ) 2 <alien> ; inline
+
+CONSTANT: DIPROPAXISMODE_ABS      0
+CONSTANT: DIPROPAXISMODE_REL      1
+                                   
+: 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
+
+CONSTANT: DIPROPAUTOCENTER_OFF    0
+CONSTANT: DIPROPAUTOCENTER_ON     1
+
+: DIPROP_CALIBRATIONMODE ( -- alien ) 10 <alien> ; inline
+
+CONSTANT: DIPROPCALIBRATIONMODE_COOKED    0
+CONSTANT: DIPROPCALIBRATIONMODE_RAW       1
+
+: 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
+
+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}
index bd938fdbad9a12ecca185a69237d61f02d38bab7..7c19cbde53d0ed80266c431f78a4ce62d2a9ab28 100644 (file)
@@ -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
index 32e4f3cd8a66232a9b88502f98819a56ab6b64db..9c16664de80c8ef74f4c16c85e88faab2255175c 100755 (executable)
@@ -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
+                  
+CONSTANT: BI_RGB        0
+CONSTANT: BI_RLE8       1
+CONSTANT: BI_RLE4       2
+CONSTANT: BI_BITFIELDS  3
 
-: BI_RGB        0 ; inline
-: BI_RLE8       1 ; inline
-: BI_RLE4       2 ; inline
-: BI_BITFIELDS  3 ; inline
-
-: DIB_RGB_COLORS 0 ; inline
-: DIB_PAL_COLORS 1 ; inline
+CONSTANT: DIB_RGB_COLORS 0
+CONSTANT: DIB_PAL_COLORS 1
 
 LIBRARY: gdi32
 
old mode 100644 (file)
new mode 100755 (executable)
index 7d6f0ab..cdfb31c
@@ -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
-
-: FILE_SHARE_READ        1 ; inline
-: FILE_SHARE_WRITE       2 ; inline
-: FILE_SHARE_DELETE      4 ; inline
-: FILE_SHARE_VALID_FLAGS 7 ; inline
-
-: 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
-
-: 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
-
-: 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
-
-: 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_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
+
+CONSTANT: FILE_SHARE_READ        1
+CONSTANT: FILE_SHARE_WRITE       2
+CONSTANT: FILE_SHARE_DELETE      4
+CONSTANT: FILE_SHARE_VALID_FLAGS 7
+
+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
+
+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
+
+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
+
+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
-
-: INVALID_HANDLE_VALUE -1 <alien> ; inline
-: INVALID_FILE_SIZE HEX: FFFFFFFF ; inline
-: INVALID_SET_FILE_POINTER HEX: ffffffff ; inline
-
-: FILE_BEGIN 0 ; inline
-: FILE_CURRENT 1 ; inline
-: FILE_END 2 ; inline
-
-: 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 ;
-
-: INFINITE HEX: FFFFFFFF ; inline
+CONSTANT: STD_INPUT_HANDLE  -10
+CONSTANT: STD_OUTPUT_HANDLE -11
+CONSTANT: STD_ERROR_HANDLE  -12
+
+: INVALID_HANDLE_VALUE ( -- alien ) -1 <alien> ; inline
+CONSTANT: INVALID_FILE_SIZE HEX: FFFFFFFF
+CONSTANT: INVALID_SET_FILE_POINTER HEX: ffffffff
+
+CONSTANT: FILE_BEGIN 0
+CONSTANT: FILE_CURRENT 1
+CONSTANT: FILE_END 2
+
+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
+
+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 ;
-
-: 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
-
-
-: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline
-: PF_SSE3_INSTRUCTIONS_AVAILABLE 13 ; inline
-
-: MAX_COMPUTERNAME_LENGTH 15 ; inline
-: UNLEN 256 ; inline
-
-: 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
-
-: MEM_COMMIT ( -- n ) HEX: 1000 ; inline
-: MEM_RELEASE ( -- n ) HEX: 8000 ; inline
-
-: 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
-
-: 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
-
-: ERROR_ALREADY_EXISTS 183 ; inline
-
-: 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: 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
+
+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
+
+CONSTANT: MAX_COMPUTERNAME_LENGTH 15
+CONSTANT: UNLEN 256
+
+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
+
+CONSTANT: MEM_COMMIT HEX: 1000
+CONSTANT: MEM_RELEASE  HEX: 8000
+
+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
+
+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
+
+CONSTANT: ERROR_ALREADY_EXISTS 183
+
+CONSTANT: FILE_MAP_ALL_ACCESS HEX: f001f
+CONSTANT: FILE_MAP_READ   4
+CONSTANT: FILE_MAP_WRITE  2
+CONSTANT: FILE_MAP_COPY   1
+
+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" ;
-
-: 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 ;
-
-: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001 ;
-: SE_PRIVILEGE_ENABLED HEX: 00000002 ;
-: SE_PRIVILEGE_REMOVE HEX: 00000004 ;
-: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000 ;
-
-: 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 ;
-
-: ANYSIZE_ARRAY 1 ; inline
-
-: 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: 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"
+
+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
+
+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
+
+CONSTANT: PRIVILEGE_SET_ALL_NECESSARY 1
+
+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
+
+CONSTANT: ANYSIZE_ARRAY 1
+
+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,
old mode 100644 (file)
new mode 100755 (executable)
index 0f271b4..bb30968
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs hashtables kernel math namespaces words
-windows.types vocabs sequences ;
+windows.types vocabs sequences constants alias ;
 IN: windows.messages
 
 SYMBOL: windows-messages
@@ -14,1012 +14,1013 @@ windows-messages set-global
 : windows-message-name ( n -- name )
     windows-messages get at "unknown message" or ;
 
-: WM_NULL HEX: 0000 ; inline
-: WM_CREATE HEX: 0001 ; inline
-: WM_DESTROY HEX: 0002 ; inline
-: WM_MOVE HEX: 0003 ; inline
-: WM_SIZE HEX: 0005 ; inline
-: WM_ACTIVATE HEX: 0006 ; inline
-: WM_SETFOCUS HEX: 0007 ; inline
-: WM_KILLFOCUS HEX: 0008 ; inline
-: WM_ENABLE HEX: 000A ; inline
-: WM_SETREDRAW HEX: 000B ; inline
-: WM_SETTEXT HEX: 000C ; inline
-: WM_GETTEXT HEX: 000D ; inline
-: WM_GETTEXTLENGTH HEX: 000E ; inline
-: WM_PAINT HEX: 000F ; inline
-: WM_CLOSE HEX: 0010 ; inline
-: WM_QUERYENDSESSION HEX: 0011 ; inline
-: WM_QUERYOPEN HEX: 0013 ; inline
-: WM_ENDSESSION HEX: 0016 ; inline
-: WM_QUIT HEX: 0012 ; inline
-: WM_ERASEBKGND HEX: 0014 ; inline
-: WM_SYSCOLORCHANGE HEX: 0015 ; inline
-: WM_SHOWWINDOW HEX: 0018 ; inline
-: WM_WININICHANGE HEX: 001A ; inline
-: WM_SETTINGCHANGE HEX: 001A ; inline
-: WM_DEVMODECHANGE HEX: 001B ; inline
-: WM_ACTIVATEAPP HEX: 001C ; inline
-: WM_FONTCHANGE HEX: 001D ; inline
-: WM_TIMECHANGE HEX: 001E ; inline
-: WM_CANCELMODE HEX: 001F ; inline
-: WM_SETCURSOR HEX: 0020 ; inline
-: WM_MOUSEACTIVATE HEX: 0021 ; inline
-: WM_CHILDACTIVATE HEX: 0022 ; inline
-: WM_QUEUESYNC HEX: 0023 ; inline
-: WM_GETMINMAXINFO HEX: 0024 ; inline
-: WM_PAINTICON HEX: 0026 ; inline
-: WM_ICONERASEBKGND HEX: 0027 ; inline
-: WM_NEXTDLGCTL HEX: 0028 ; inline
-: WM_SPOOLERSTATUS HEX: 002A ; inline
-: WM_DRAWITEM HEX: 002B ; inline
-: WM_MEASUREITEM HEX: 002C ; inline
-: WM_DELETEITEM HEX: 002D ; inline
-: WM_VKEYTOITEM HEX: 002E ; inline
-: WM_CHARTOITEM HEX: 002F ; inline
-: WM_SETFONT HEX: 0030 ; inline
-: WM_GETFONT HEX: 0031 ; inline
-: WM_SETHOTKEY HEX: 0032 ; inline
-: WM_GETHOTKEY HEX: 0033 ; inline
-: WM_QUERYDRAGICON HEX: 0037 ; inline
-: WM_COMPAREITEM HEX: 0039 ; inline
-: WM_GETOBJECT HEX: 003D ; inline
-: WM_COMPACTING HEX: 0041 ; inline
-: WM_COMMNOTIFY HEX: 0044 ; inline
-: WM_WINDOWPOSCHANGING HEX: 0046 ; inline
-: WM_WINDOWPOSCHANGED HEX: 0047 ; inline
-: WM_POWER HEX: 0048 ; inline
-: WM_COPYDATA HEX: 004A ; inline
-: WM_CANCELJOURNAL HEX: 004B ; inline
-: WM_NOTIFY HEX: 004E ; inline
-: WM_INPUTLANGCHANGEREQUEST HEX: 0050 ; inline
-: WM_INPUTLANGCHANGE HEX: 0051 ; inline
-: WM_TCARD HEX: 0052 ; inline
-: WM_HELP HEX: 0053 ; inline
-: WM_USERCHANGED HEX: 0054 ; inline
-: WM_NOTIFYFORMAT HEX: 0055 ; inline
-: WM_CONTEXTMENU HEX: 007B ; inline
-: WM_STYLECHANGING HEX: 007C ; inline
-: WM_STYLECHANGED HEX: 007D ; inline
-: WM_DISPLAYCHANGE HEX: 007E ; inline
-: WM_GETICON HEX: 007F ; inline
-: WM_SETICON HEX: 0080 ; inline
-: WM_NCCREATE HEX: 0081 ; inline
-: WM_NCDESTROY HEX: 0082 ; inline
-: WM_NCCALCSIZE HEX: 0083 ; inline
-: WM_NCHITTEST HEX: 0084 ; inline
-: WM_NCPAINT HEX: 0085 ; inline
-: WM_NCACTIVATE HEX: 0086 ; inline
-: WM_GETDLGCODE HEX: 0087 ; inline
-: WM_SYNCPAINT HEX: 0088 ; inline
-: WM_NCMOUSEMOVE HEX: 00A0 ; inline
-: WM_NCLBUTTONDOWN HEX: 00A1 ; inline
-: WM_NCLBUTTONUP HEX: 00A2 ; inline
-: WM_NCLBUTTONDBLCLK HEX: 00A3 ; inline
-: WM_NCRBUTTONDOWN HEX: 00A4 ; inline
-: WM_NCRBUTTONUP HEX: 00A5 ; inline
-: WM_NCRBUTTONDBLCLK HEX: 00A6 ; inline
-: WM_NCMBUTTONDOWN HEX: 00A7 ; inline
-: WM_NCMBUTTONUP HEX: 00A8 ; inline
-: WM_NCMBUTTONDBLCLK HEX: 00A9 ; inline
-: WM_NCXBUTTONDOWN HEX: 00AB ; inline
-: WM_NCXBUTTONUP HEX: 00AC ; inline
-: WM_NCXBUTTONDBLCLK HEX: 00AD ; inline
-: WM_NCUAHDRAWCAPTION HEX: 00AE ; inline ! undocumented
-: WM_NCUAHDRAWFRAME HEX: 00AF ; inline   ! undocumented
-: WM_INPUT HEX: 00FF ; inline
-: WM_KEYFIRST HEX: 0100 ; inline
-: WM_KEYDOWN HEX: 0100 ; inline
-: WM_KEYUP HEX: 0101 ; inline
-: WM_CHAR HEX: 0102 ; inline
-: WM_DEADCHAR HEX: 0103 ; inline
-: WM_SYSKEYDOWN HEX: 0104 ; inline
-: WM_SYSKEYUP HEX: 0105 ; inline
-: WM_SYSCHAR HEX: 0106 ; inline
-: WM_SYSDEADCHAR HEX: 0107 ; inline
-: WM_UNICHAR HEX: 0109 ; inline
-: WM_KEYLAST_NT501 HEX: 0109 ; inline
-: UNICODE_NOCHAR HEX: FFFF ; inline
-: WM_KEYLAST_PRE501 HEX: 0108 ; inline
-: WM_IME_STARTCOMPOSITION HEX: 010D ; inline
-: WM_IME_ENDCOMPOSITION HEX: 010E ; inline
-: WM_IME_COMPOSITION HEX: 010F ; inline
-: WM_IME_KEYLAST HEX: 010F ; inline
-: WM_INITDIALOG HEX: 0110 ; inline
-: WM_COMMAND HEX: 0111 ; inline
-: WM_SYSCOMMAND HEX: 0112 ; inline
-: WM_TIMER HEX: 0113 ; inline
-: WM_HSCROLL HEX: 0114 ; inline
-: WM_VSCROLL HEX: 0115 ; inline
-: WM_INITMENU HEX: 0116 ; inline
-: WM_INITMENUPOPUP HEX: 0117 ; inline
-: WM_MENUSELECT HEX: 011F ; inline
-: WM_MENUCHAR HEX: 0120 ; inline
-: WM_ENTERIDLE HEX: 0121 ; inline
-: WM_MENURBUTTONUP HEX: 0122 ; inline
-: WM_MENUDRAG HEX: 0123 ; inline
-: WM_MENUGETOBJECT HEX: 0124 ; inline
-: WM_UNINITMENUPOPUP HEX: 0125 ; inline
-: WM_MENUCOMMAND HEX: 0126 ; inline
-: WM_CHANGEUISTATE HEX: 0127 ; inline
-: WM_UPDATEUISTATE HEX: 0128 ; inline
-: WM_QUERYUISTATE HEX: 0129 ; inline
-: WM_CTLCOLORMSGBOX HEX: 0132 ; inline
-: WM_CTLCOLOREDIT HEX: 0133 ; inline
-: WM_CTLCOLORLISTBOX HEX: 0134 ; inline
-: WM_CTLCOLORBTN HEX: 0135 ; inline
-: WM_CTLCOLORDLG HEX: 0136 ; inline
-: WM_CTLCOLORSCROLLBAR HEX: 0137 ; inline
-: WM_CTLCOLORSTATIC HEX: 0138 ; inline
-: WM_MOUSEFIRST HEX: 0200 ; inline
-: WM_MOUSEMOVE HEX: 0200 ; inline
-: WM_LBUTTONDOWN HEX: 0201 ; inline
-: WM_LBUTTONUP HEX: 0202 ; inline
-: WM_LBUTTONDBLCLK HEX: 0203 ; inline
-: WM_RBUTTONDOWN HEX: 0204 ; inline
-: WM_RBUTTONUP HEX: 0205 ; inline
-: WM_RBUTTONDBLCLK HEX: 0206 ; inline
-: WM_MBUTTONDOWN HEX: 0207 ; inline
-: WM_MBUTTONUP HEX: 0208 ; inline
-: WM_MBUTTONDBLCLK HEX: 0209 ; inline
-: WM_MOUSEWHEEL HEX: 020A ; inline
-: WM_XBUTTONDOWN HEX: 020B ; inline
-: WM_XBUTTONUP HEX: 020C ; inline
-: WM_XBUTTONDBLCLK HEX: 020D ; inline
-: WM_MOUSELAST_5 HEX: 020D ; inline
-: WM_MOUSELAST_4 HEX: 020A ; inline
-: WM_MOUSELAST_PRE_4 HEX: 0209 ; inline
-: WM_PARENTNOTIFY HEX: 0210 ; inline
-: WM_ENTERMENULOOP HEX: 0211 ; inline
-: WM_EXITMENULOOP HEX: 0212 ; inline
-: WM_NEXTMENU HEX: 0213 ; inline
-: WM_SIZING HEX: 0214 ; inline
-: WM_CAPTURECHANGED HEX: 0215 ; inline
-: WM_MOVING HEX: 0216 ; inline
-: WM_POWERBROADCAST HEX: 0218 ; inline
-: WM_DEVICECHANGE HEX: 0219 ; inline
-: WM_MDICREATE HEX: 0220 ; inline
-: WM_MDIDESTROY HEX: 0221 ; inline
-: WM_MDIACTIVATE HEX: 0222 ; inline
-: WM_MDIRESTORE HEX: 0223 ; inline
-: WM_MDINEXT HEX: 0224 ; inline
-: WM_MDIMAXIMIZE HEX: 0225 ; inline
-: WM_MDITILE HEX: 0226 ; inline
-: WM_MDICASCADE HEX: 0227 ; inline
-: WM_MDIICONARRANGE HEX: 0228 ; inline
-: WM_MDIGETACTIVE HEX: 0229 ; inline
-: WM_MDISETMENU HEX: 0230 ; inline
-: WM_ENTERSIZEMOVE HEX: 0231 ; inline
-: WM_EXITSIZEMOVE HEX: 0232 ; inline
-: WM_DROPFILES HEX: 0233 ; inline
-: WM_MDIREFRESHMENU HEX: 0234 ; inline
-: WM_IME_SETCONTEXT HEX: 0281 ; inline
-: WM_IME_NOTIFY HEX: 0282 ; inline
-: WM_IME_CONTROL HEX: 0283 ; inline
-: WM_IME_COMPOSITIONFULL HEX: 0284 ; inline
-: WM_IME_SELECT HEX: 0285 ; inline
-: WM_IME_CHAR HEX: 0286 ; inline
-: WM_IME_REQUEST HEX: 0288 ; inline
-: WM_IME_KEYDOWN HEX: 0290 ; inline
-: WM_IME_KEYUP HEX: 0291 ; inline
-: WM_MOUSEHOVER HEX: 02A1 ; inline
-: WM_MOUSELEAVE HEX: 02A3 ; inline
-: WM_NCMOUSEHOVER HEX: 02A0 ; inline
-: WM_NCMOUSELEAVE HEX: 02A2 ; inline
-: WM_WTSSESSION_CHANGE HEX: 02B1 ; inline
-: WM_TABLET_FIRST HEX: 02c0 ; inline
-: WM_TABLET_LAST HEX: 02df ; inline
-: WM_CUT HEX: 0300 ; inline
-: WM_COPY HEX: 0301 ; inline
-: WM_PASTE HEX: 0302 ; inline
-: WM_CLEAR HEX: 0303 ; inline
-: WM_UNDO HEX: 0304 ; inline
-: WM_RENDERFORMAT HEX: 0305 ; inline
-: WM_RENDERALLFORMATS HEX: 0306 ; inline
-: WM_DESTROYCLIPBOARD HEX: 0307 ; inline
-: WM_DRAWCLIPBOARD HEX: 0308 ; inline
-: WM_PAINTCLIPBOARD HEX: 0309 ; inline
-: WM_VSCROLLCLIPBOARD HEX: 030A ; inline
-: WM_SIZECLIPBOARD HEX: 030B ; inline
-: WM_ASKCBFORMATNAME HEX: 030C ; inline
-: WM_CHANGECBCHAIN HEX: 030D ; inline
-: WM_HSCROLLCLIPBOARD HEX: 030E ; inline
-: WM_QUERYNEWPALETTE HEX: 030F ; inline
-: WM_PALETTEISCHANGING HEX: 0310 ; inline
-: WM_PALETTECHANGED HEX: 0311 ; inline
-: WM_HOTKEY HEX: 0312 ; inline
-: WM_PRINT HEX: 0317 ; inline
-: WM_PRINTCLIENT HEX: 0318 ; inline
-: WM_APPCOMMAND HEX: 0319 ; inline
-: WM_THEMECHANGED HEX: 031A ; inline
-: WM_HANDHELDFIRST HEX: 0358 ; inline
-: WM_HANDHELDLAST HEX: 035F ; inline
-: WM_AFXFIRST HEX: 0360 ; inline
-: WM_AFXLAST HEX: 037F ; inline
-: WM_PENWINFIRST HEX: 0380 ; inline
-: WM_PENWINLAST HEX: 038F ; inline
-: WM_APP HEX: 8000 ; inline
-: WM_USER HEX: 0400 ; inline
-: EM_GETSEL HEX: 00B0 ; inline
-: EM_SETSEL HEX: 00B1 ; inline
-: EM_GETRECT HEX: 00B2 ; inline
-: EM_SETRECT HEX: 00B3 ; inline
-: EM_SETRECTNP HEX: 00B4 ; inline
-: EM_SCROLL HEX: 00B5 ; inline
-: EM_LINESCROLL HEX: 00B6 ; inline
-: EM_SCROLLCARET HEX: 00B7 ; inline
-: EM_GETMODIFY HEX: 00B8 ; inline
-: EM_SETMODIFY HEX: 00B9 ; inline
-: EM_GETLINECOUNT HEX: 00BA ; inline
-: EM_LINEINDEX HEX: 00BB ; inline
-: EM_SETHANDLE HEX: 00BC ; inline
-: EM_GETHANDLE HEX: 00BD ; inline
-: EM_GETTHUMB HEX: 00BE ; inline
-: EM_LINELENGTH HEX: 00C1 ; inline
-: EM_REPLACESEL HEX: 00C2 ; inline
-: EM_GETLINE HEX: 00C4 ; inline
-: EM_LIMITTEXT HEX: 00C5 ; inline
-: EM_CANUNDO HEX: 00C6 ; inline
-: EM_UNDO HEX: 00C7 ; inline
-: EM_FMTLINES HEX: 00C8 ; inline
-: EM_LINEFROMCHAR HEX: 00C9 ; inline
-: EM_SETTABSTOPS HEX: 00CB ; inline
-: EM_SETPASSWORDCHAR HEX: 00CC ; inline
-: EM_EMPTYUNDOBUFFER HEX: 00CD ; inline
-: EM_GETFIRSTVISIBLELINE HEX: 00CE ; inline
-: EM_SETREADONLY HEX: 00CF ; inline
-: EM_SETWORDBREAKPROC HEX: 00D0 ; inline
-: EM_GETWORDBREAKPROC HEX: 00D1 ; inline
-: EM_GETPASSWORDCHAR HEX: 00D2 ; inline
-: EM_SETMARGINS HEX: 00D3 ; inline
-: EM_GETMARGINS HEX: 00D4 ; inline
-: EM_SETLIMITTEXT EM_LIMITTEXT ; inline
-: EM_GETLIMITTEXT HEX: 00D5 ; inline
-: EM_POSFROMCHAR HEX: 00D6 ; inline
-: EM_CHARFROMPOS HEX: 00D7 ; inline
-: EM_SETIMESTATUS HEX: 00D8 ; inline
-: EM_GETIMESTATUS HEX: 00D9 ; inline
-: BM_GETCHECK HEX: 00F0 ; inline
-: BM_SETCHECK HEX: 00F1 ; inline
-: BM_GETSTATE HEX: 00F2 ; inline
-: BM_SETSTATE HEX: 00F3 ; inline
-: BM_SETSTYLE HEX: 00F4 ; inline
-: BM_CLICK HEX: 00F5 ; inline
-: BM_GETIMAGE HEX: 00F6 ; inline
-: BM_SETIMAGE HEX: 00F7 ; inline
-: STM_SETICON HEX: 0170 ; inline
-: STM_GETICON HEX: 0171 ; inline
-: STM_SETIMAGE HEX: 0172 ; inline
-: STM_GETIMAGE HEX: 0173 ; inline
-: STM_MSGMAX HEX: 0174 ; inline
-: DM_GETDEFID WM_USER ; inline
-: DM_SETDEFID  WM_USER 1 + ; inline
-: DM_REPOSITION WM_USER 2 + ; inline
-: LB_ADDSTRING HEX: 0180 ; inline
-: LB_INSERTSTRING HEX: 0181 ; inline
-: LB_DELETESTRING HEX: 0182 ; inline
-: LB_SELITEMRANGEEX HEX: 0183 ; inline
-: LB_RESETCONTENT HEX: 0184 ; inline
-: LB_SETSEL HEX: 0185 ; inline
-: LB_SETCURSEL HEX: 0186 ; inline
-: LB_GETSEL HEX: 0187 ; inline
-: LB_GETCURSEL HEX: 0188 ; inline
-: LB_GETTEXT HEX: 0189 ; inline
-: LB_GETTEXTLEN HEX: 018A ; inline
-: LB_GETCOUNT HEX: 018B ; inline
-: LB_SELECTSTRING HEX: 018C ; inline
-: LB_DIR HEX: 018D ; inline
-: LB_GETTOPINDEX HEX: 018E ; inline
-: LB_FINDSTRING HEX: 018F ; inline
-: LB_GETSELCOUNT HEX: 0190 ; inline
-: LB_GETSELITEMS HEX: 0191 ; inline
-: LB_SETTABSTOPS HEX: 0192 ; inline
-: LB_GETHORIZONTALEXTENT HEX: 0193 ; inline
-: LB_SETHORIZONTALEXTENT HEX: 0194 ; inline
-: LB_SETCOLUMNWIDTH HEX: 0195 ; inline
-: LB_ADDFILE HEX: 0196 ; inline
-: LB_SETTOPINDEX HEX: 0197 ; inline
-: LB_GETITEMRECT HEX: 0198 ; inline
-: LB_GETITEMDATA HEX: 0199 ; inline
-: LB_SETITEMDATA HEX: 019A ; inline
-: LB_SELITEMRANGE HEX: 019B ; inline
-: LB_SETANCHORINDEX HEX: 019C ; inline
-: LB_GETANCHORINDEX HEX: 019D ; inline
-: LB_SETCARETINDEX HEX: 019E ; inline
-: LB_GETCARETINDEX HEX: 019F ; inline
-: LB_SETITEMHEIGHT HEX: 01A0 ; inline
-: LB_GETITEMHEIGHT HEX: 01A1 ; inline
-: LB_FINDSTRINGEXACT HEX: 01A2 ; inline
-: LB_SETLOCALE HEX: 01A5 ; inline
-: LB_GETLOCALE HEX: 01A6 ; inline
-: LB_SETCOUNT HEX: 01A7 ; inline
-: LB_INITSTORAGE HEX: 01A8 ; inline
-: LB_ITEMFROMPOINT HEX: 01A9 ; inline
-: LB_MULTIPLEADDSTRING HEX: 01B1 ; inline
-: LB_GETLISTBOXINFO HEX: 01B2 ; inline
-: LB_MSGMAX_501 HEX: 01B3 ; inline
-: LB_MSGMAX_WCE4 HEX: 01B1 ; inline
-: LB_MSGMAX_4 HEX: 01B0 ; inline
-: LB_MSGMAX_PRE4 HEX: 01A8 ; inline
-: CB_GETEDITSEL HEX: 0140 ; inline
-: CB_LIMITTEXT HEX: 0141 ; inline
-: CB_SETEDITSEL HEX: 0142 ; inline
-: CB_ADDSTRING HEX: 0143 ; inline
-: CB_DELETESTRING HEX: 0144 ; inline
-: CB_DIR HEX: 0145 ; inline
-: CB_GETCOUNT HEX: 0146 ; inline
-: CB_GETCURSEL HEX: 0147 ; inline
-: CB_GETLBTEXT HEX: 0148 ; inline
-: CB_GETLBTEXTLEN HEX: 0149 ; inline
-: CB_INSERTSTRING HEX: 014A ; inline
-: CB_RESETCONTENT HEX: 014B ; inline
-: CB_FINDSTRING HEX: 014C ; inline
-: CB_SELECTSTRING HEX: 014D ; inline
-: CB_SETCURSEL HEX: 014E ; inline
-: CB_SHOWDROPDOWN HEX: 014F ; inline
-: CB_GETITEMDATA HEX: 0150 ; inline
-: CB_SETITEMDATA HEX: 0151 ; inline
-: CB_GETDROPPEDCONTROLRECT HEX: 0152 ; inline
-: CB_SETITEMHEIGHT HEX: 0153 ; inline
-: CB_GETITEMHEIGHT HEX: 0154 ; inline
-: CB_SETEXTENDEDUI HEX: 0155 ; inline
-: CB_GETEXTENDEDUI HEX: 0156 ; inline
-: CB_GETDROPPEDSTATE HEX: 0157 ; inline
-: CB_FINDSTRINGEXACT HEX: 0158 ; inline
-: CB_SETLOCALE HEX: 0159 ; inline
-: CB_GETLOCALE HEX: 015A ; inline
-: CB_GETTOPINDEX HEX: 015B ; inline
-: CB_SETTOPINDEX HEX: 015C ; inline
-: CB_GETHORIZONTALEXTENT HEX: 015d ; inline
-: CB_SETHORIZONTALEXTENT HEX: 015e ; inline
-: CB_GETDROPPEDWIDTH HEX: 015f ; inline
-: CB_SETDROPPEDWIDTH HEX: 0160 ; inline
-: CB_INITSTORAGE HEX: 0161 ; inline
-: CB_MULTIPLEADDSTRING HEX: 0163 ; inline
-: CB_GETCOMBOBOXINFO HEX: 0164 ; inline
-: CB_MSGMAX_501 HEX: 0165 ; inline
-: CB_MSGMAX_WCE400 HEX: 0163 ; inline
-: CB_MSGMAX_400 HEX: 0162 ; inline
-: CB_MSGMAX_PRE400 HEX: 015B ; inline
-: SBM_SETPOS HEX: 00E0 ; inline
-: SBM_GETPOS HEX: 00E1 ; inline
-: SBM_SETRANGE HEX: 00E2 ; inline
-: SBM_SETRANGEREDRAW HEX: 00E6 ; inline
-: SBM_GETRANGE HEX: 00E3 ; inline
-: SBM_ENABLE_ARROWS HEX: 00E4 ; inline
-: SBM_SETSCROLLINFO HEX: 00E9 ; inline
-: SBM_GETSCROLLINFO HEX: 00EA ; inline
-: SBM_GETSCROLLBARINFO HEX: 00EB ; inline
-: LVM_FIRST HEX: 1000 ; inline ! ListView messages
-: TV_FIRST HEX: 1100 ; inline ! TreeView messages
-: HDM_FIRST HEX: 1200 ; inline ! Header messages
-: TCM_FIRST HEX: 1300 ; inline ! Tab control messages
-: PGM_FIRST HEX: 1400 ; inline ! Pager control messages
-: ECM_FIRST HEX: 1500 ; inline ! Edit control messages
-: BCM_FIRST HEX: 1600 ; inline ! Button control messages
-: CBM_FIRST HEX: 1700 ; inline ! Combobox control messages
-: CCM_FIRST HEX: 2000 ; inline ! Common control shared messages
-: CCM_LAST CCM_FIRST HEX: 0200 + ; inline
-: CCM_SETBKCOLOR CCM_FIRST  1 +  ; inline
-: CCM_SETCOLORSCHEME CCM_FIRST  2 +  ; inline
-: CCM_GETCOLORSCHEME CCM_FIRST  3 +  ; inline
-: CCM_GETDROPTARGET CCM_FIRST  4 +  ; inline
-: CCM_SETUNICODEFORMAT CCM_FIRST  5 +  ; inline
-: CCM_GETUNICODEFORMAT CCM_FIRST  6 +  ; inline
-: CCM_SETVERSION CCM_FIRST  7 +  ; inline
-: CCM_GETVERSION CCM_FIRST  8 +  ; inline
-: CCM_SETNOTIFYWINDOW CCM_FIRST  9 +  ; inline
-: CCM_SETWINDOWTHEME CCM_FIRST  HEX: b +  ; inline
-: CCM_DPISCALE CCM_FIRST  HEX: c +  ; inline
-: HDM_GETITEMCOUNT HDM_FIRST  0 +  ; inline
-: HDM_INSERTITEMA HDM_FIRST  1 +  ; inline
-: HDM_INSERTITEMW HDM_FIRST  10 +  ; inline
-: HDM_DELETEITEM HDM_FIRST  2 +  ; inline
-: HDM_GETITEMA HDM_FIRST  3 +  ; inline
-: HDM_GETITEMW HDM_FIRST  11 +  ; inline
-: HDM_SETITEMA HDM_FIRST  4 +  ; inline
-: HDM_SETITEMW HDM_FIRST  12 +  ; inline
-: HDM_LAYOUT HDM_FIRST  5 +  ; inline
-: HDM_HITTEST HDM_FIRST  6 +  ; inline
-: HDM_GETITEMRECT HDM_FIRST  7 +  ; inline
-: HDM_SETIMAGELIST HDM_FIRST  8 +  ; inline
-: HDM_GETIMAGELIST HDM_FIRST  9 +  ; inline
-: HDM_ORDERTOINDEX HDM_FIRST  15 +  ; inline
-: HDM_CREATEDRAGIMAGE HDM_FIRST  16 +  ; inline
-: HDM_GETORDERARRAY HDM_FIRST  17 +  ; inline
-: HDM_SETORDERARRAY HDM_FIRST  18 +  ; inline
-: HDM_SETHOTDIVIDER HDM_FIRST  19 +  ; inline
-: HDM_SETBITMAPMARGIN HDM_FIRST  20 +  ; inline
-: HDM_GETBITMAPMARGIN HDM_FIRST  21 +  ; inline
-: HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: HDM_SETFILTERCHANGETIMEOUT HDM_FIRST 22 + ; inline
-: HDM_EDITFILTER HDM_FIRST 23 + ; inline
-: HDM_CLEARFILTER HDM_FIRST 24 + ; inline
-: TB_ENABLEBUTTON WM_USER 1 + ; inline
-: TB_CHECKBUTTON WM_USER 2 + ; inline
-: TB_PRESSBUTTON WM_USER 3 + ; inline
-: TB_HIDEBUTTON WM_USER  4 +  ; inline
-: TB_INDETERMINATE WM_USER  5 +  ; inline
-: TB_MARKBUTTON WM_USER  6 +  ; inline
-: TB_ISBUTTONENABLED WM_USER  9 +  ; inline
-: TB_ISBUTTONCHECKED WM_USER  10 +  ; inline
-: TB_ISBUTTONPRESSED WM_USER  11 +  ; inline
-: TB_ISBUTTONHIDDEN WM_USER  12 +  ; inline
-: TB_ISBUTTONINDETERMINATE WM_USER  13 +  ; inline
-: TB_ISBUTTONHIGHLIGHTED WM_USER  14 +  ; inline
-: TB_SETSTATE WM_USER  17 +  ; inline
-: TB_GETSTATE WM_USER  18 +  ; inline
-: TB_ADDBITMAP WM_USER  19 +  ; inline
-: TB_ADDBUTTONSA WM_USER  20 +  ; inline
-: TB_INSERTBUTTONA WM_USER  21 +  ; inline
-: TB_ADDBUTTONS WM_USER  20 +  ; inline
-: TB_INSERTBUTTON WM_USER  21 +  ; inline
-: TB_DELETEBUTTON WM_USER  22 +  ; inline
-: TB_GETBUTTON WM_USER  23 +  ; inline
-: TB_BUTTONCOUNT WM_USER  24 +  ; inline
-: TB_COMMANDTOINDEX WM_USER  25 +  ; inline
-: TB_SAVERESTOREA WM_USER  26 +  ; inline
-: TB_SAVERESTOREW WM_USER  76 +  ; inline
-: TB_CUSTOMIZE WM_USER  27 +  ; inline
-: TB_ADDSTRINGA WM_USER  28 +  ; inline
-: TB_ADDSTRINGW WM_USER  77 +  ; inline
-: TB_GETITEMRECT WM_USER  29 +  ; inline
-: TB_BUTTONSTRUCTSIZE WM_USER  30 +  ; inline
-: TB_SETBUTTONSIZE WM_USER  31 +  ; inline
-: TB_SETBITMAPSIZE WM_USER  32 +  ; inline
-: TB_AUTOSIZE WM_USER  33 +  ; inline
-: TB_GETTOOLTIPS WM_USER  35 +  ; inline
-: TB_SETTOOLTIPS WM_USER  36 +  ; inline
-: TB_SETPARENT WM_USER  37 +  ; inline
-: TB_SETROWS WM_USER  39 +  ; inline
-: TB_GETROWS WM_USER  40 +  ; inline
-: TB_SETCMDID WM_USER  42 +  ; inline
-: TB_CHANGEBITMAP WM_USER  43 +  ; inline
-: TB_GETBITMAP WM_USER  44 +  ; inline
-: TB_GETBUTTONTEXTA WM_USER  45 +  ; inline
-: TB_GETBUTTONTEXTW WM_USER  75 +  ; inline
-: TB_REPLACEBITMAP WM_USER  46 +  ; inline
-: TB_SETINDENT WM_USER  47 +  ; inline
-: TB_SETIMAGELIST WM_USER  48 +  ; inline
-: TB_GETIMAGELIST WM_USER  49 +  ; inline
-: TB_LOADIMAGES WM_USER  50 +  ; inline
-: TB_GETRECT WM_USER  51 +  ; inline
-: TB_SETHOTIMAGELIST WM_USER  52 +  ; inline
-: TB_GETHOTIMAGELIST WM_USER  53 +  ; inline
-: TB_SETDISABLEDIMAGELIST WM_USER  54 +  ; inline
-: TB_GETDISABLEDIMAGELIST WM_USER  55 +  ; inline
-: TB_SETSTYLE WM_USER  56 +  ; inline
-: TB_GETSTYLE WM_USER  57 +  ; inline
-: TB_GETBUTTONSIZE WM_USER  58 +  ; inline
-: TB_SETBUTTONWIDTH WM_USER  59 +  ; inline
-: TB_SETMAXTEXTROWS WM_USER  60 +  ; inline
-: TB_GETTEXTROWS WM_USER  61 +  ; inline
-: TB_GETOBJECT WM_USER  62 +  ; inline
-: TB_GETHOTITEM WM_USER  71 +  ; inline
-: TB_SETHOTITEM WM_USER  72 +  ; inline
-: TB_SETANCHORHIGHLIGHT WM_USER  73 +  ; inline
-: TB_GETANCHORHIGHLIGHT WM_USER  74 +  ; inline
-: TB_MAPACCELERATORA WM_USER  78 +  ; inline
-: TB_GETINSERTMARK WM_USER  79 +  ; inline
-: TB_SETINSERTMARK WM_USER  80 +  ; inline
-: TB_INSERTMARKHITTEST WM_USER  81 +  ; inline
-: TB_MOVEBUTTON WM_USER  82 +  ; inline
-: TB_GETMAXSIZE WM_USER  83 +  ; inline
-: TB_SETEXTENDEDSTYLE WM_USER  84 +  ; inline
-: TB_GETEXTENDEDSTYLE WM_USER  85 +  ; inline
-: TB_GETPADDING WM_USER  86 +  ; inline
-: TB_SETPADDING WM_USER  87 +  ; inline
-: TB_SETINSERTMARKCOLOR WM_USER  88 +  ; inline
-: TB_GETINSERTMARKCOLOR WM_USER  89 +  ; inline
-: TB_SETCOLORSCHEME CCM_SETCOLORSCHEME ; inline
-: TB_GETCOLORSCHEME CCM_GETCOLORSCHEME ; inline
-: TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: TB_MAPACCELERATORW WM_USER  90 +  ; inline
-: TB_GETBITMAPFLAGS WM_USER  41 +  ; inline
-: TB_GETBUTTONINFOW WM_USER  63 +  ; inline
-: TB_SETBUTTONINFOW WM_USER  64 +  ; inline
-: TB_GETBUTTONINFOA WM_USER  65 +  ; inline
-: TB_SETBUTTONINFOA WM_USER  66 +  ; inline
-: TB_INSERTBUTTONW WM_USER  67 +  ; inline
-: TB_ADDBUTTONSW WM_USER  68 +  ; inline
-: TB_HITTEST WM_USER  69 +  ; inline
-: TB_SETDRAWTEXTFLAGS WM_USER  70 +  ; inline
-: TB_GETSTRINGW WM_USER  91 +  ; inline
-: TB_GETSTRINGA WM_USER  92 +  ; inline
-: TB_GETMETRICS WM_USER  101 +  ; inline
-: TB_SETMETRICS WM_USER  102 +  ; inline
-: TB_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline
-: RB_INSERTBANDA WM_USER  1 +  ; inline
-: RB_DELETEBAND WM_USER  2 +  ; inline
-: RB_GETBARINFO WM_USER  3 +  ; inline
-: RB_SETBARINFO WM_USER  4 +  ; inline
-: RB_GETBANDINFO WM_USER  5 +  ; inline
-: RB_SETBANDINFOA WM_USER  6 +  ; inline
-: RB_SETPARENT WM_USER  7 +  ; inline
-: RB_HITTEST WM_USER  8 +  ; inline
-: RB_GETRECT WM_USER  9 +  ; inline
-: RB_INSERTBANDW WM_USER  10 +  ; inline
-: RB_SETBANDINFOW WM_USER  11 +  ; inline
-: RB_GETBANDCOUNT WM_USER  12 +  ; inline
-: RB_GETROWCOUNT WM_USER  13 +  ; inline
-: RB_GETROWHEIGHT WM_USER  14 +  ; inline
-: RB_IDTOINDEX WM_USER  16 +  ; inline
-: RB_GETTOOLTIPS WM_USER  17 +  ; inline
-: RB_SETTOOLTIPS WM_USER  18 +  ; inline
-: RB_SETBKCOLOR WM_USER  19 +  ; inline
-: RB_GETBKCOLOR WM_USER  20 +  ; inline
-: RB_SETTEXTCOLOR WM_USER  21 +  ; inline
-: RB_GETTEXTCOLOR WM_USER  22 +  ; inline
-: RB_SIZETORECT WM_USER  23 +  ; inline
-: RB_SETCOLORSCHEME CCM_SETCOLORSCHEME ; inline
-: RB_GETCOLORSCHEME CCM_GETCOLORSCHEME ; inline
-: RB_BEGINDRAG WM_USER  24 +  ; inline
-: RB_ENDDRAG WM_USER  25 +  ; inline
-: RB_DRAGMOVE WM_USER  26 +  ; inline
-: RB_GETBARHEIGHT WM_USER  27 +  ; inline
-: RB_GETBANDINFOW WM_USER  28 +  ; inline
-: RB_GETBANDINFOA WM_USER  29 +  ; inline
-: RB_MINIMIZEBAND WM_USER  30 +  ; inline
-: RB_MAXIMIZEBAND WM_USER  31 +  ; inline
-: RB_GETDROPTARGET CCM_GETDROPTARGET ; inline
-: RB_GETBANDBORDERS WM_USER  34 +  ; inline
-: RB_SHOWBAND WM_USER  35 +  ; inline
-: RB_SETPALETTE WM_USER  37 +  ; inline
-: RB_GETPALETTE WM_USER  38 +  ; inline
-: RB_MOVEBAND WM_USER  39 +  ; inline
-: RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: RB_GETBANDMARGINS WM_USER  40 +  ; inline
-: RB_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline
-: RB_PUSHCHEVRON WM_USER  43 +  ; inline
-: TTM_ACTIVATE WM_USER  1 +  ; inline
-: TTM_SETDELAYTIME WM_USER  3 +  ; inline
-: TTM_ADDTOOLA WM_USER  4 +  ; inline
-: TTM_ADDTOOLW WM_USER  50 +  ; inline
-: TTM_DELTOOLA WM_USER  5 +  ; inline
-: TTM_DELTOOLW WM_USER  51 +  ; inline
-: TTM_NEWTOOLRECTA WM_USER  6 +  ; inline
-: TTM_NEWTOOLRECTW WM_USER  52 +  ; inline
-: TTM_RELAYEVENT WM_USER  7 +  ; inline
-: TTM_GETTOOLINFOA WM_USER  8 +  ; inline
-: TTM_GETTOOLINFOW WM_USER  53 +  ; inline
-: TTM_SETTOOLINFOA WM_USER  9 +  ; inline
-: TTM_SETTOOLINFOW WM_USER  54 +  ; inline
-: TTM_HITTESTA WM_USER 10 + ; inline
-: TTM_HITTESTW WM_USER 55 + ; inline
-: TTM_GETTEXTA WM_USER 11 + ; inline
-: TTM_GETTEXTW WM_USER 56 + ; inline
-: TTM_UPDATETIPTEXTA WM_USER 12 + ; inline
-: TTM_UPDATETIPTEXTW WM_USER 57 + ; inline
-: TTM_GETTOOLCOUNT WM_USER 13 + ; inline
-: TTM_ENUMTOOLSA WM_USER 14 + ; inline
-: TTM_ENUMTOOLSW WM_USER 58 + ; inline
-: TTM_GETCURRENTTOOLA WM_USER  15 +  ; inline
-: TTM_GETCURRENTTOOLW WM_USER  59 +  ; inline
-: TTM_WINDOWFROMPOINT WM_USER  16 +  ; inline
-: TTM_TRACKACTIVATE WM_USER  17 +  ; inline
-: TTM_TRACKPOSITION WM_USER  18 +  ; inline
-: TTM_SETTIPBKCOLOR WM_USER  19 +  ; inline
-: TTM_SETTIPTEXTCOLOR WM_USER  20 +  ; inline
-: TTM_GETDELAYTIME WM_USER  21 +  ; inline
-: TTM_GETTIPBKCOLOR WM_USER  22 +  ; inline
-: TTM_GETTIPTEXTCOLOR WM_USER  23 +  ; inline
-: TTM_SETMAXTIPWIDTH WM_USER  24 +  ; inline
-: TTM_GETMAXTIPWIDTH WM_USER  25 +  ; inline
-: TTM_SETMARGIN WM_USER  26 +  ; inline
-: TTM_GETMARGIN WM_USER  27 +  ; inline
-: TTM_POP WM_USER  28 +  ; inline
-: TTM_UPDATE WM_USER  29 +  ; inline
-: TTM_GETBUBBLESIZE WM_USER  30 +  ; inline
-: TTM_ADJUSTRECT WM_USER  31 +  ; inline
-: TTM_SETTITLEA WM_USER  32 +  ; inline
-: TTM_SETTITLEW WM_USER  33 +  ; inline
-: TTM_POPUP WM_USER  34 +  ; inline
-: TTM_GETTITLE WM_USER  35 +  ; inline
-: TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline
-: SB_SETTEXTA WM_USER 1+  ; inline
-: SB_SETTEXTW WM_USER 11 +  ; inline
-: SB_GETTEXTA WM_USER 2 +  ; inline
-: SB_GETTEXTW WM_USER 13 +  ; inline
-: SB_GETTEXTLENGTHA WM_USER 3 +  ; inline
-: SB_GETTEXTLENGTHW WM_USER 12 +  ; inline
-: SB_SETPARTS WM_USER 4 +  ; inline
-: SB_GETPARTS WM_USER 6 +  ; inline
-: SB_GETBORDERS WM_USER 7 +  ; inline
-: SB_SETMINHEIGHT WM_USER 8 +  ; inline
-: SB_SIMPLE WM_USER 9 +  ; inline
-: SB_GETRECT WM_USER 10 +  ; inline
-: SB_ISSIMPLE WM_USER 14 +  ; inline
-: SB_SETICON WM_USER 15 +  ; inline
-: SB_SETTIPTEXTA WM_USER 16 +  ; inline
-: SB_SETTIPTEXTW WM_USER 17 +  ; inline
-: SB_GETTIPTEXTA WM_USER 18 +  ; inline
-: SB_GETTIPTEXTW WM_USER 19 +  ; inline
-: SB_GETICON WM_USER 20 +  ; inline
-: SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: SB_SETBKCOLOR CCM_SETBKCOLOR ; inline
-: SB_SIMPLEID HEX: 00ff ; inline
-: TBM_GETPOS WM_USER ; inline
-: TBM_GETRANGEMIN WM_USER 1 +  ; inline
-: TBM_GETRANGEMAX WM_USER 2 +  ; inline
-: TBM_GETTIC WM_USER 3 +  ; inline
-: TBM_SETTIC WM_USER 4 +  ; inline
-: TBM_SETPOS WM_USER 5 +  ; inline
-: TBM_SETRANGE WM_USER 6 +  ; inline
-: TBM_SETRANGEMIN WM_USER 7 +  ; inline
-: TBM_SETRANGEMAX WM_USER 8 +  ; inline
-: TBM_CLEARTICS WM_USER 9 +  ; inline
-: TBM_SETSEL WM_USER 10 +  ; inline
-: TBM_SETSELSTART WM_USER 11 +  ; inline
-: TBM_SETSELEND WM_USER 12 +  ; inline
-: TBM_GETPTICS WM_USER 14 +  ; inline
-: TBM_GETTICPOS WM_USER 15 +  ; inline
-: TBM_GETNUMTICS WM_USER 16 +  ; inline
-: TBM_GETSELSTART WM_USER 17 +  ; inline
-: TBM_GETSELEND WM_USER 18 +  ; inline
-: TBM_CLEARSEL WM_USER 19 +  ; inline
-: TBM_SETTICFREQ WM_USER 20 +  ; inline
-: TBM_SETPAGESIZE WM_USER 21 +  ; inline
-: TBM_GETPAGESIZE WM_USER 22 +  ; inline
-: TBM_SETLINESIZE WM_USER 23 +  ; inline
-: TBM_GETLINESIZE WM_USER 24 +  ; inline
-: TBM_GETTHUMBRECT WM_USER 25 +  ; inline
-: TBM_GETCHANNELRECT WM_USER 26 +  ; inline
-: TBM_SETTHUMBLENGTH WM_USER 27 +  ; inline
-: TBM_GETTHUMBLENGTH WM_USER 28 +  ; inline
-: TBM_SETTOOLTIPS WM_USER 29 +  ; inline
-: TBM_GETTOOLTIPS WM_USER 30 +  ; inline
-: TBM_SETTIPSIDE WM_USER 31 +  ; inline
-: TBM_SETBUDDY WM_USER 32 +  ; inline
-: TBM_GETBUDDY WM_USER 33 +  ; inline
-: TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: DL_BEGINDRAG WM_USER 133 +  ; inline
-: DL_DRAGGING WM_USER 134 +  ; inline
-: DL_DROPPED WM_USER 135 +  ; inline
-: DL_CANCELDRAG WM_USER 136 +  ; inline
-: UDM_SETRANGE WM_USER 101 +  ; inline
-: UDM_GETRANGE WM_USER 102 +  ; inline
-: UDM_SETPOS WM_USER 103 +  ; inline
-: UDM_GETPOS WM_USER 104 +  ; inline
-: UDM_SETBUDDY WM_USER 105 +  ; inline
-: UDM_GETBUDDY WM_USER 106 +  ; inline
-: UDM_SETACCEL WM_USER 107 +  ; inline
-: UDM_GETACCEL WM_USER 108 +  ; inline
-: UDM_SETBASE WM_USER 109 +  ; inline
-: UDM_GETBASE WM_USER 110 +  ; inline
-: UDM_SETRANGE32 WM_USER 111 +  ; inline
-: UDM_GETRANGE32 WM_USER 112 +  ; inline
-: UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: UDM_SETPOS32 WM_USER 113 +  ; inline
-: UDM_GETPOS32 WM_USER 114 +  ; inline
-: PBM_SETRANGE WM_USER 1 +  ; inline
-: PBM_SETPOS WM_USER 2 +  ; inline
-: PBM_DELTAPOS WM_USER 3 +  ; inline
-: PBM_SETSTEP WM_USER 4 +  ; inline
-: PBM_STEPIT WM_USER 5 +  ; inline
-: PBM_SETRANGE32 WM_USER 6 +  ; inline
-: PBM_GETRANGE WM_USER 7 +  ; inline
-: PBM_GETPOS WM_USER 8 +  ; inline
-: PBM_SETBARCOLOR WM_USER 9 +  ; inline
-: PBM_SETBKCOLOR CCM_SETBKCOLOR ; inline
-: HKM_SETHOTKEY WM_USER 1 +  ; inline
-: HKM_GETHOTKEY WM_USER 2 +  ; inline
-: HKM_SETRULES WM_USER 3 +  ; inline
-: LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: LVM_GETBKCOLOR LVM_FIRST  0 +  ; inline
-: LVM_SETBKCOLOR LVM_FIRST  1 +  ; inline
-: LVM_GETIMAGELIST LVM_FIRST  2 +  ; inline
-: LVM_SETIMAGELIST LVM_FIRST  3 +  ; inline
-: LVM_GETITEMCOUNT LVM_FIRST  4 +  ; inline
-: LVM_GETITEMA LVM_FIRST  5 +  ; inline
-: LVM_GETITEMW LVM_FIRST  75 +  ; inline
-: LVM_SETITEMA LVM_FIRST  6 +  ; inline
-: LVM_SETITEMW LVM_FIRST  76 +  ; inline
-: LVM_INSERTITEMA LVM_FIRST  7 +  ; inline
-: LVM_INSERTITEMW LVM_FIRST  77 +  ; inline
-: LVM_DELETEITEM LVM_FIRST  8 +  ; inline
-: LVM_DELETEALLITEMS LVM_FIRST  9 +  ; inline
-: LVM_GETCALLBACKMASK LVM_FIRST  10 +  ; inline
-: LVM_SETCALLBACKMASK LVM_FIRST  11 +  ; inline
-: LVM_FINDITEMA LVM_FIRST  13 +  ; inline
-: LVM_FINDITEMW LVM_FIRST  83 +  ; inline
-: LVM_GETITEMRECT LVM_FIRST  14 +  ; inline
-: LVM_SETITEMPOSITION LVM_FIRST  15 +  ; inline
-: LVM_GETITEMPOSITION LVM_FIRST  16 +  ; inline
-: LVM_GETSTRINGWIDTHA LVM_FIRST  17 +  ; inline
-: LVM_GETSTRINGWIDTHW LVM_FIRST  87 +  ; inline
-: LVM_HITTEST LVM_FIRST  18 +  ; inline
-: LVM_ENSUREVISIBLE LVM_FIRST  19 +  ; inline
-: LVM_SCROLL LVM_FIRST  20 +  ; inline
-: LVM_REDRAWITEMS LVM_FIRST  21 +  ; inline
-: LVM_ARRANGE LVM_FIRST  22 +  ; inline
-: LVM_EDITLABELA LVM_FIRST  23 +  ; inline
-: LVM_EDITLABELW LVM_FIRST  118 +  ; inline
-: LVM_GETEDITCONTROL LVM_FIRST  24 +  ; inline
-: LVM_GETCOLUMNA LVM_FIRST  25 +  ; inline
-: LVM_GETCOLUMNW LVM_FIRST  95 +  ; inline
-: LVM_SETCOLUMNA LVM_FIRST  26 +  ; inline
-: LVM_SETCOLUMNW LVM_FIRST  96 +  ; inline
-: LVM_INSERTCOLUMNA LVM_FIRST  27 +  ; inline
-: LVM_INSERTCOLUMNW LVM_FIRST  97 +  ; inline
-: LVM_DELETECOLUMN LVM_FIRST  28 +  ; inline
-: LVM_GETCOLUMNWIDTH LVM_FIRST  29 +  ; inline
-: LVM_SETCOLUMNWIDTH LVM_FIRST  30 +  ; inline
-: LVM_CREATEDRAGIMAGE LVM_FIRST  33 +  ; inline
-: LVM_GETVIEWRECT LVM_FIRST  34 +  ; inline
-: LVM_GETTEXTCOLOR LVM_FIRST  35 +  ; inline
-: LVM_SETTEXTCOLOR LVM_FIRST  36 +  ; inline
-: LVM_GETTEXTBKCOLOR LVM_FIRST  37 +  ; inline
-: LVM_SETTEXTBKCOLOR LVM_FIRST  38 +  ; inline
-: LVM_GETTOPINDEX LVM_FIRST  39 +  ; inline
-: LVM_GETCOUNTPERPAGE LVM_FIRST  40 +  ; inline
-: LVM_GETORIGIN LVM_FIRST  41 +  ; inline
-: LVM_UPDATE LVM_FIRST  42 +  ; inline
-: LVM_SETITEMSTATE LVM_FIRST  43 +  ; inline
-: LVM_GETITEMSTATE LVM_FIRST  44 +  ; inline
-: LVM_GETITEMTEXTA LVM_FIRST  45 +  ; inline
-: LVM_GETITEMTEXTW LVM_FIRST  115 +  ; inline
-: LVM_SETITEMTEXTA LVM_FIRST  46 +  ; inline
-: LVM_SETITEMTEXTW LVM_FIRST  116 +  ; inline
-: LVM_SETITEMCOUNT LVM_FIRST  47 +  ; inline
-: LVM_SORTITEMS LVM_FIRST  48 +  ; inline
-: LVM_SETITEMPOSITION32 LVM_FIRST  49 +  ; inline
-: LVM_GETSELECTEDCOUNT LVM_FIRST  50 +  ; inline
-: LVM_GETITEMSPACING LVM_FIRST  51 +  ; inline
-: LVM_GETISEARCHSTRINGA LVM_FIRST  52 +  ; inline
-: LVM_GETISEARCHSTRINGW LVM_FIRST  117 +  ; inline
-: LVM_SETICONSPACING LVM_FIRST  53 +  ; inline
-: LVM_SETEXTENDEDLISTVIEWSTYLE LVM_FIRST  54 +  ; inline
-: LVM_GETEXTENDEDLISTVIEWSTYLE LVM_FIRST  55 +  ; inline
-: LVM_GETSUBITEMRECT LVM_FIRST  56 +  ; inline
-: LVM_SUBITEMHITTEST LVM_FIRST  57 +  ; inline
-: LVM_SETCOLUMNORDERARRAY LVM_FIRST  58 +  ; inline
-: LVM_GETCOLUMNORDERARRAY LVM_FIRST  59 +  ; inline
-: LVM_SETHOTITEM LVM_FIRST  60 +  ; inline
-: LVM_GETHOTITEM LVM_FIRST  61 +  ; inline
-: LVM_SETHOTCURSOR LVM_FIRST  62 +  ; inline
-: LVM_GETHOTCURSOR LVM_FIRST  63 +  ; inline
-: LVM_APPROXIMATEVIEWRECT LVM_FIRST  64 +  ; inline
-: LVM_SETWORKAREAS LVM_FIRST  65 +  ; inline
-: LVM_GETWORKAREAS LVM_FIRST  70 +  ; inline
-: LVM_GETNUMBEROFWORKAREAS LVM_FIRST  73 +  ; inline
-: LVM_GETSELECTIONMARK LVM_FIRST  66 +  ; inline
-: LVM_SETSELECTIONMARK LVM_FIRST  67 +  ; inline
-: LVM_SETHOVERTIME LVM_FIRST  71 +  ; inline
-: LVM_GETHOVERTIME LVM_FIRST  72 +  ; inline
-: LVM_SETTOOLTIPS LVM_FIRST  74 +  ; inline
-: LVM_GETTOOLTIPS LVM_FIRST  78 +  ; inline
-: LVM_SORTITEMSEX LVM_FIRST  81 +  ; inline
-: LVM_SETBKIMAGEA LVM_FIRST  68 +  ; inline
-: LVM_SETBKIMAGEW LVM_FIRST  138 +  ; inline
-: LVM_GETBKIMAGEA LVM_FIRST  69 +  ; inline
-: LVM_GETBKIMAGEW LVM_FIRST  139 +  ; inline
-: LVM_SETSELECTEDCOLUMN LVM_FIRST  140 +  ; inline
-: LVM_SETTILEWIDTH LVM_FIRST  141 +  ; inline
-: LVM_SETVIEW LVM_FIRST  142 +  ; inline
-: LVM_GETVIEW LVM_FIRST  143 +  ; inline
-: LVM_INSERTGROUP LVM_FIRST  145 +  ; inline
-: LVM_SETGROUPINFO LVM_FIRST  147 +  ; inline
-: LVM_GETGROUPINFO LVM_FIRST  149 +  ; inline
-: LVM_REMOVEGROUP LVM_FIRST  150 +  ; inline
-: LVM_MOVEGROUP LVM_FIRST  151 +  ; inline
-: LVM_MOVEITEMTOGROUP LVM_FIRST  154 +  ; inline
-: LVM_SETGROUPMETRICS LVM_FIRST  155 +  ; inline
-: LVM_GETGROUPMETRICS LVM_FIRST  156 +  ; inline
-: LVM_ENABLEGROUPVIEW LVM_FIRST  157 +  ; inline
-: LVM_SORTGROUPS LVM_FIRST  158 +  ; inline
-: LVM_INSERTGROUPSORTED LVM_FIRST  159 +  ; inline
-: LVM_REMOVEALLGROUPS LVM_FIRST  160 +  ; inline
-: LVM_HASGROUP LVM_FIRST  161 +  ; inline
-: LVM_SETTILEVIEWINFO LVM_FIRST  162 +  ; inline
-: LVM_GETTILEVIEWINFO LVM_FIRST  163 +  ; inline
-: LVM_SETTILEINFO LVM_FIRST  164 +  ; inline
-: LVM_GETTILEINFO LVM_FIRST  165 +  ; inline
-: LVM_SETINSERTMARK LVM_FIRST  166 +  ; inline
-: LVM_GETINSERTMARK LVM_FIRST  167 +  ; inline
-: LVM_INSERTMARKHITTEST LVM_FIRST  168 +  ; inline
-: LVM_GETINSERTMARKRECT LVM_FIRST  169 +  ; inline
-: LVM_SETINSERTMARKCOLOR LVM_FIRST  170 +  ; inline
-: LVM_GETINSERTMARKCOLOR LVM_FIRST  171 +  ; inline
-: LVM_SETINFOTIP LVM_FIRST  173 +  ; inline
-: LVM_GETSELECTEDCOLUMN LVM_FIRST  174 +  ; inline
-: LVM_ISGROUPVIEWENABLED LVM_FIRST  175 +  ; inline
-: LVM_GETOUTLINECOLOR LVM_FIRST  176 +  ; inline
-: LVM_SETOUTLINECOLOR LVM_FIRST  177 +  ; inline
-: LVM_CANCELEDITLABEL LVM_FIRST  179 +  ; inline
-: LVM_MAPINDEXTOID LVM_FIRST  180 +  ; inline
-: LVM_MAPIDTOINDEX LVM_FIRST  181 +  ; inline
-: TVM_INSERTITEMA TV_FIRST  0 +  ; inline
-: TVM_INSERTITEMW TV_FIRST  50 +  ; inline
-: TVM_DELETEITEM TV_FIRST  1 +  ; inline
-: TVM_EXPAND TV_FIRST  2 +  ; inline
-: TVM_GETITEMRECT TV_FIRST  4 +  ; inline
-: TVM_GETCOUNT TV_FIRST  5 +  ; inline
-: TVM_GETINDENT TV_FIRST  6 +  ; inline
-: TVM_SETINDENT TV_FIRST  7 +  ; inline
-: TVM_GETIMAGELIST TV_FIRST  8 +  ; inline
-: TVM_SETIMAGELIST TV_FIRST  9 +  ; inline
-: TVM_GETNEXTITEM TV_FIRST  10 +  ; inline
-: TVM_SELECTITEM TV_FIRST  11 +  ; inline
-: TVM_GETITEMA TV_FIRST  12 +  ; inline
-: TVM_GETITEMW TV_FIRST  62 +  ; inline
-: TVM_SETITEMA TV_FIRST  13 +  ; inline
-: TVM_SETITEMW TV_FIRST  63 +  ; inline
-: TVM_EDITLABELA TV_FIRST  14 +  ; inline
-: TVM_EDITLABELW TV_FIRST  65 +  ; inline
-: TVM_GETEDITCONTROL TV_FIRST  15 +  ; inline
-: TVM_GETVISIBLECOUNT TV_FIRST  16 +  ; inline
-: TVM_HITTEST TV_FIRST  17 +  ; inline
-: TVM_CREATEDRAGIMAGE TV_FIRST  18 +  ; inline
-: TVM_SORTCHILDREN TV_FIRST  19 +  ; inline
-: TVM_ENSUREVISIBLE TV_FIRST  20 +  ; inline
-: TVM_SORTCHILDRENCB TV_FIRST  21 +  ; inline
-: TVM_ENDEDITLABELNOW TV_FIRST  22 +  ; inline
-: TVM_GETISEARCHSTRINGA TV_FIRST  23 +  ; inline
-: TVM_GETISEARCHSTRINGW TV_FIRST  64 +  ; inline
-: TVM_SETTOOLTIPS TV_FIRST  24 +  ; inline
-: TVM_GETTOOLTIPS TV_FIRST  25 +  ; inline
-: TVM_SETINSERTMARK TV_FIRST  26 +  ; inline
-: TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: TVM_SETITEMHEIGHT TV_FIRST  27 +  ; inline
-: TVM_GETITEMHEIGHT TV_FIRST  28 +  ; inline
-: TVM_SETBKCOLOR TV_FIRST  29 +  ; inline
-: TVM_SETTEXTCOLOR TV_FIRST  30 +  ; inline
-: TVM_GETBKCOLOR TV_FIRST  31 +  ; inline
-: TVM_GETTEXTCOLOR TV_FIRST  32 +  ; inline
-: TVM_SETSCROLLTIME TV_FIRST  33 +  ; inline
-: TVM_GETSCROLLTIME TV_FIRST  34 +  ; inline
-: TVM_SETINSERTMARKCOLOR TV_FIRST  37 +  ; inline
-: TVM_GETINSERTMARKCOLOR TV_FIRST  38 +  ; inline
-: TVM_GETITEMSTATE TV_FIRST  39 +  ; inline
-: TVM_SETLINECOLOR TV_FIRST  40 +  ; inline
-: TVM_GETLINECOLOR TV_FIRST  41 +  ; inline
-: TVM_MAPACCIDTOHTREEITEM TV_FIRST  42 +  ; inline
-: TVM_MAPHTREEITEMTOACCID TV_FIRST  43 +  ; inline
-: CBEM_INSERTITEMA WM_USER  1 +  ; inline
-: CBEM_SETIMAGELIST WM_USER  2 +  ; inline
-: CBEM_GETIMAGELIST WM_USER  3 +  ; inline
-: CBEM_GETITEMA WM_USER  4 +  ; inline
-: CBEM_SETITEMA WM_USER  5 +  ; inline
-: CBEM_DELETEITEM CB_DELETESTRING ; inline
-: CBEM_GETCOMBOCONTROL WM_USER  6 +  ; inline
-: CBEM_GETEDITCONTROL WM_USER  7 +  ; inline
-: CBEM_SETEXTENDEDSTYLE WM_USER  14 +  ; inline
-: CBEM_GETEXTENDEDSTYLE WM_USER  9 +  ; inline
-: CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: CBEM_SETEXSTYLE WM_USER  8 +  ; inline
-: CBEM_GETEXSTYLE WM_USER  9 +  ; inline
-: CBEM_HASEDITCHANGED WM_USER  10 +  ; inline
-: CBEM_INSERTITEMW WM_USER  11 +  ; inline
-: CBEM_SETITEMW WM_USER  12 +  ; inline
-: CBEM_GETITEMW WM_USER  13 +  ; inline
-: TCM_GETIMAGELIST TCM_FIRST  2 +  ; inline
-: TCM_SETIMAGELIST TCM_FIRST  3 +  ; inline
-: TCM_GETITEMCOUNT TCM_FIRST  4 +  ; inline
-: TCM_GETITEMA TCM_FIRST  5 +  ; inline
-: TCM_GETITEMW TCM_FIRST  60 +  ; inline
-: TCM_SETITEMA TCM_FIRST  6 +  ; inline
-: TCM_SETITEMW TCM_FIRST  61 +  ; inline
-: TCM_INSERTITEMA TCM_FIRST  7 +  ; inline
-: TCM_INSERTITEMW TCM_FIRST  62 +  ; inline
-: TCM_DELETEITEM TCM_FIRST  8 +  ; inline
-: TCM_DELETEALLITEMS TCM_FIRST  9 +  ; inline
-: TCM_GETITEMRECT TCM_FIRST  10 +  ; inline
-: TCM_GETCURSEL TCM_FIRST  11 +  ; inline
-: TCM_SETCURSEL TCM_FIRST  12 +  ; inline
-: TCM_HITTEST TCM_FIRST  13 +  ; inline
-: TCM_SETITEMEXTRA TCM_FIRST  14 +  ; inline
-: TCM_ADJUSTRECT TCM_FIRST  40 +  ; inline
-: TCM_SETITEMSIZE TCM_FIRST  41 +  ; inline
-: TCM_REMOVEIMAGE TCM_FIRST  42 +  ; inline
-: TCM_SETPADDING TCM_FIRST  43 +  ; inline
-: TCM_GETROWCOUNT TCM_FIRST  44 +  ; inline
-: TCM_GETTOOLTIPS TCM_FIRST  45 +  ; inline
-: TCM_SETTOOLTIPS TCM_FIRST  46 +  ; inline
-: TCM_GETCURFOCUS TCM_FIRST  47 +  ; inline
-: TCM_SETCURFOCUS TCM_FIRST  48 +  ; inline
-: TCM_SETMINTABWIDTH TCM_FIRST  49 +  ; inline
-: TCM_DESELECTALL TCM_FIRST  50 +  ; inline
-: TCM_HIGHLIGHTITEM TCM_FIRST  51 +  ; inline
-: TCM_SETEXTENDEDSTYLE TCM_FIRST  52 +  ; inline
-: TCM_GETEXTENDEDSTYLE TCM_FIRST  53 +  ; inline
-: TCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: TCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: ACM_OPENA WM_USER 100 +  ; inline
-: ACM_OPENW WM_USER 103 +  ; inline
-: ACM_PLAY WM_USER 101 +  ; inline
-: ACM_STOP WM_USER 102 +  ; inline
-: MCM_FIRST HEX: 1000 ; inline
-: MCM_GETCURSEL MCM_FIRST  1 +  ; inline
-: MCM_SETCURSEL MCM_FIRST  2 +  ; inline
-: MCM_GETMAXSELCOUNT MCM_FIRST  3 +  ; inline
-: MCM_SETMAXSELCOUNT MCM_FIRST  4 +  ; inline
-: MCM_GETSELRANGE MCM_FIRST  5 +  ; inline
-: MCM_SETSELRANGE MCM_FIRST  6 +  ; inline
-: MCM_GETMONTHRANGE MCM_FIRST  7 +  ; inline
-: MCM_SETDAYSTATE MCM_FIRST  8 +  ; inline
-: MCM_GETMINREQRECT MCM_FIRST  9 +  ; inline
-: MCM_SETCOLOR MCM_FIRST  10 +  ; inline
-: MCM_GETCOLOR MCM_FIRST  11 +  ; inline
-: MCM_SETTODAY MCM_FIRST  12 +  ; inline
-: MCM_GETTODAY MCM_FIRST  13 +  ; inline
-: MCM_HITTEST MCM_FIRST  14 +  ; inline
-: MCM_SETFIRSTDAYOFWEEK MCM_FIRST  15 +  ; inline
-: MCM_GETFIRSTDAYOFWEEK MCM_FIRST  16 +  ; inline
-: MCM_GETRANGE MCM_FIRST  17 +  ; inline
-: MCM_SETRANGE MCM_FIRST  18 +  ; inline
-: MCM_GETMONTHDELTA MCM_FIRST  19 +  ; inline
-: MCM_SETMONTHDELTA MCM_FIRST  20 +  ; inline
-: MCM_GETMAXTODAYWIDTH MCM_FIRST  21 +  ; inline
-: MCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline
-: MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline
-: DTM_FIRST HEX: 1000 ; inline
-: DTM_GETSYSTEMTIME DTM_FIRST  1 +  ; inline
-: DTM_SETSYSTEMTIME DTM_FIRST  2 +  ; inline
-: DTM_GETRANGE DTM_FIRST  3 +  ; inline
-: DTM_SETRANGE DTM_FIRST  4 +  ; inline
-: DTM_SETFORMATA DTM_FIRST  5 +  ; inline
-: DTM_SETFORMATW DTM_FIRST  50 +  ; inline
-: DTM_SETMCCOLOR DTM_FIRST  6 +  ; inline
-: DTM_GETMCCOLOR DTM_FIRST  7 +  ; inline
-: DTM_GETMONTHCAL DTM_FIRST  8 +  ; inline
-: DTM_SETMCFONT DTM_FIRST  9 +  ; inline
-: DTM_GETMCFONT DTM_FIRST  10 +  ; inline
-: PGM_SETCHILD PGM_FIRST  1 +  ; inline
-: PGM_RECALCSIZE PGM_FIRST  2 +  ; inline
-: PGM_FORWARDMOUSE PGM_FIRST  3 +  ; inline
-: PGM_SETBKCOLOR PGM_FIRST  4 +  ; inline
-: PGM_GETBKCOLOR PGM_FIRST  5 +  ; inline
-: PGM_SETBORDER PGM_FIRST  6 +  ; inline
-: PGM_GETBORDER PGM_FIRST  7 +  ; inline
-: PGM_SETPOS PGM_FIRST  8 +  ; inline
-: PGM_GETPOS PGM_FIRST  9 +  ; inline
-: PGM_SETBUTTONSIZE PGM_FIRST  10 +  ; inline
-: PGM_GETBUTTONSIZE PGM_FIRST  11 +  ; inline
-: PGM_GETBUTTONSTATE PGM_FIRST  12 +  ; inline
-: PGM_GETDROPTARGET CCM_GETDROPTARGET ; inline
-: BCM_GETIDEALSIZE BCM_FIRST  1 +  ; inline
-: BCM_SETIMAGELIST BCM_FIRST  2 +  ; inline
-: BCM_GETIMAGELIST BCM_FIRST  3 +  ; inline
-: BCM_SETTEXTMARGIN BCM_FIRST 4 +  ; inline
-: BCM_GETTEXTMARGIN BCM_FIRST 5 +  ; inline
-: EM_SETCUEBANNER       ECM_FIRST  1 +  ; inline
-: EM_GETCUEBANNER       ECM_FIRST  2 +  ; inline
-: EM_SHOWBALLOONTIP ECM_FIRST  3 +  ; inline
-: EM_HIDEBALLOONTIP ECM_FIRST  4 +  ; inline
-: CB_SETMINVISIBLE CBM_FIRST  1 +  ; inline
-: CB_GETMINVISIBLE CBM_FIRST  2 +  ; inline
-: LM_HITTEST WM_USER  HEX: 0300 +  ; inline
-: LM_GETIDEALHEIGHT WM_USER  HEX: 0301 +  ; inline
-: LM_SETITEM WM_USER  HEX: 0302 + ; inline
-: LM_GETITEM WM_USER  HEX: 0303 + ; inline
+CONSTANT: WM_NULL HEX: 0000
+CONSTANT: WM_CREATE HEX: 0001
+CONSTANT: WM_DESTROY HEX: 0002
+CONSTANT: WM_MOVE HEX: 0003
+CONSTANT: WM_SIZE HEX: 0005
+CONSTANT: WM_ACTIVATE HEX: 0006
+CONSTANT: WM_SETFOCUS HEX: 0007
+CONSTANT: WM_KILLFOCUS HEX: 0008
+CONSTANT: WM_ENABLE HEX: 000A
+CONSTANT: WM_SETREDRAW HEX: 000B
+CONSTANT: WM_SETTEXT HEX: 000C
+CONSTANT: WM_GETTEXT HEX: 000D
+CONSTANT: WM_GETTEXTLENGTH HEX: 000E
+CONSTANT: WM_PAINT HEX: 000F
+CONSTANT: WM_CLOSE HEX: 0010
+CONSTANT: WM_QUERYENDSESSION HEX: 0011
+CONSTANT: WM_QUERYOPEN HEX: 0013
+CONSTANT: WM_ENDSESSION HEX: 0016
+CONSTANT: WM_QUIT HEX: 0012
+CONSTANT: WM_ERASEBKGND HEX: 0014
+CONSTANT: WM_SYSCOLORCHANGE HEX: 0015
+CONSTANT: WM_SHOWWINDOW HEX: 0018
+CONSTANT: WM_WININICHANGE HEX: 001A
+CONSTANT: WM_SETTINGCHANGE HEX: 001A
+CONSTANT: WM_DEVMODECHANGE HEX: 001B
+CONSTANT: WM_ACTIVATEAPP HEX: 001C
+CONSTANT: WM_FONTCHANGE HEX: 001D
+CONSTANT: WM_TIMECHANGE HEX: 001E
+CONSTANT: WM_CANCELMODE HEX: 001F
+CONSTANT: WM_SETCURSOR HEX: 0020
+CONSTANT: WM_MOUSEACTIVATE HEX: 0021
+CONSTANT: WM_CHILDACTIVATE HEX: 0022
+CONSTANT: WM_QUEUESYNC HEX: 0023
+CONSTANT: WM_GETMINMAXINFO HEX: 0024
+CONSTANT: WM_PAINTICON HEX: 0026
+CONSTANT: WM_ICONERASEBKGND HEX: 0027
+CONSTANT: WM_NEXTDLGCTL HEX: 0028
+CONSTANT: WM_SPOOLERSTATUS HEX: 002A
+CONSTANT: WM_DRAWITEM HEX: 002B
+CONSTANT: WM_MEASUREITEM HEX: 002C
+CONSTANT: WM_DELETEITEM HEX: 002D
+CONSTANT: WM_VKEYTOITEM HEX: 002E
+CONSTANT: WM_CHARTOITEM HEX: 002F
+CONSTANT: WM_SETFONT HEX: 0030
+CONSTANT: WM_GETFONT HEX: 0031
+CONSTANT: WM_SETHOTKEY HEX: 0032
+CONSTANT: WM_GETHOTKEY HEX: 0033
+CONSTANT: WM_QUERYDRAGICON HEX: 0037
+CONSTANT: WM_COMPAREITEM HEX: 0039
+CONSTANT: WM_GETOBJECT HEX: 003D
+CONSTANT: WM_COMPACTING HEX: 0041
+CONSTANT: WM_COMMNOTIFY HEX: 0044
+CONSTANT: WM_WINDOWPOSCHANGING HEX: 0046
+CONSTANT: WM_WINDOWPOSCHANGED HEX: 0047
+CONSTANT: WM_POWER HEX: 0048
+CONSTANT: WM_COPYDATA HEX: 004A
+CONSTANT: WM_CANCELJOURNAL HEX: 004B
+CONSTANT: WM_NOTIFY HEX: 004E
+CONSTANT: WM_INPUTLANGCHANGEREQUEST HEX: 0050
+CONSTANT: WM_INPUTLANGCHANGE HEX: 0051
+CONSTANT: WM_TCARD HEX: 0052
+CONSTANT: WM_HELP HEX: 0053
+CONSTANT: WM_USERCHANGED HEX: 0054
+CONSTANT: WM_NOTIFYFORMAT HEX: 0055
+CONSTANT: WM_CONTEXTMENU HEX: 007B
+CONSTANT: WM_STYLECHANGING HEX: 007C
+CONSTANT: WM_STYLECHANGED HEX: 007D
+CONSTANT: WM_DISPLAYCHANGE HEX: 007E
+CONSTANT: WM_GETICON HEX: 007F
+CONSTANT: WM_SETICON HEX: 0080
+CONSTANT: WM_NCCREATE HEX: 0081
+CONSTANT: WM_NCDESTROY HEX: 0082
+CONSTANT: WM_NCCALCSIZE HEX: 0083
+CONSTANT: WM_NCHITTEST HEX: 0084
+CONSTANT: WM_NCPAINT HEX: 0085
+CONSTANT: WM_NCACTIVATE HEX: 0086
+CONSTANT: WM_GETDLGCODE HEX: 0087
+CONSTANT: WM_SYNCPAINT HEX: 0088
+CONSTANT: WM_NCMOUSEMOVE HEX: 00A0
+CONSTANT: WM_NCLBUTTONDOWN HEX: 00A1
+CONSTANT: WM_NCLBUTTONUP HEX: 00A2
+CONSTANT: WM_NCLBUTTONDBLCLK HEX: 00A3
+CONSTANT: WM_NCRBUTTONDOWN HEX: 00A4
+CONSTANT: WM_NCRBUTTONUP HEX: 00A5
+CONSTANT: WM_NCRBUTTONDBLCLK HEX: 00A6
+CONSTANT: WM_NCMBUTTONDOWN HEX: 00A7
+CONSTANT: WM_NCMBUTTONUP HEX: 00A8
+CONSTANT: WM_NCMBUTTONDBLCLK HEX: 00A9
+CONSTANT: WM_NCXBUTTONDOWN HEX: 00AB
+CONSTANT: WM_NCXBUTTONUP HEX: 00AC
+CONSTANT: WM_NCXBUTTONDBLCLK HEX: 00AD
+CONSTANT: WM_NCUAHDRAWCAPTION HEX: 00AE ! undocumented
+CONSTANT: WM_NCUAHDRAWFRAME HEX: 00AF   ! undocumented
+CONSTANT: WM_INPUT HEX: 00FF
+CONSTANT: WM_KEYFIRST HEX: 0100
+CONSTANT: WM_KEYDOWN HEX: 0100
+CONSTANT: WM_KEYUP HEX: 0101
+CONSTANT: WM_CHAR HEX: 0102
+CONSTANT: WM_DEADCHAR HEX: 0103
+CONSTANT: WM_SYSKEYDOWN HEX: 0104
+CONSTANT: WM_SYSKEYUP HEX: 0105
+CONSTANT: WM_SYSCHAR HEX: 0106
+CONSTANT: WM_SYSDEADCHAR HEX: 0107
+CONSTANT: WM_UNICHAR HEX: 0109
+CONSTANT: WM_KEYLAST_NT501 HEX: 0109
+CONSTANT: UNICODE_NOCHAR HEX: FFFF
+CONSTANT: WM_KEYLAST_PRE501 HEX: 0108
+CONSTANT: WM_IME_STARTCOMPOSITION HEX: 010D
+CONSTANT: WM_IME_ENDCOMPOSITION HEX: 010E
+CONSTANT: WM_IME_COMPOSITION HEX: 010F
+CONSTANT: WM_IME_KEYLAST HEX: 010F
+CONSTANT: WM_INITDIALOG HEX: 0110
+CONSTANT: WM_COMMAND HEX: 0111
+CONSTANT: WM_SYSCOMMAND HEX: 0112
+CONSTANT: WM_TIMER HEX: 0113
+CONSTANT: WM_HSCROLL HEX: 0114
+CONSTANT: WM_VSCROLL HEX: 0115
+CONSTANT: WM_INITMENU HEX: 0116
+CONSTANT: WM_INITMENUPOPUP HEX: 0117
+CONSTANT: WM_MENUSELECT HEX: 011F
+CONSTANT: WM_MENUCHAR HEX: 0120
+CONSTANT: WM_ENTERIDLE HEX: 0121
+CONSTANT: WM_MENURBUTTONUP HEX: 0122
+CONSTANT: WM_MENUDRAG HEX: 0123
+CONSTANT: WM_MENUGETOBJECT HEX: 0124
+CONSTANT: WM_UNINITMENUPOPUP HEX: 0125
+CONSTANT: WM_MENUCOMMAND HEX: 0126
+CONSTANT: WM_CHANGEUISTATE HEX: 0127
+CONSTANT: WM_UPDATEUISTATE HEX: 0128
+CONSTANT: WM_QUERYUISTATE HEX: 0129
+CONSTANT: WM_CTLCOLORMSGBOX HEX: 0132
+CONSTANT: WM_CTLCOLOREDIT HEX: 0133
+CONSTANT: WM_CTLCOLORLISTBOX HEX: 0134
+CONSTANT: WM_CTLCOLORBTN HEX: 0135
+CONSTANT: WM_CTLCOLORDLG HEX: 0136
+CONSTANT: WM_CTLCOLORSCROLLBAR HEX: 0137
+CONSTANT: WM_CTLCOLORSTATIC HEX: 0138
+CONSTANT: WM_MOUSEFIRST HEX: 0200
+CONSTANT: WM_MOUSEMOVE HEX: 0200
+CONSTANT: WM_LBUTTONDOWN HEX: 0201
+CONSTANT: WM_LBUTTONUP HEX: 0202
+CONSTANT: WM_LBUTTONDBLCLK HEX: 0203
+CONSTANT: WM_RBUTTONDOWN HEX: 0204
+CONSTANT: WM_RBUTTONUP HEX: 0205
+CONSTANT: WM_RBUTTONDBLCLK HEX: 0206
+CONSTANT: WM_MBUTTONDOWN HEX: 0207
+CONSTANT: WM_MBUTTONUP HEX: 0208
+CONSTANT: WM_MBUTTONDBLCLK HEX: 0209
+CONSTANT: WM_MOUSEWHEEL HEX: 020A
+CONSTANT: WM_XBUTTONDOWN HEX: 020B
+CONSTANT: WM_XBUTTONUP HEX: 020C
+CONSTANT: WM_XBUTTONDBLCLK HEX: 020D
+CONSTANT: WM_MOUSELAST_5 HEX: 020D
+CONSTANT: WM_MOUSELAST_4 HEX: 020A
+CONSTANT: WM_MOUSELAST_PRE_4 HEX: 0209
+CONSTANT: WM_PARENTNOTIFY HEX: 0210
+CONSTANT: WM_ENTERMENULOOP HEX: 0211
+CONSTANT: WM_EXITMENULOOP HEX: 0212
+CONSTANT: WM_NEXTMENU HEX: 0213
+CONSTANT: WM_SIZING HEX: 0214
+CONSTANT: WM_CAPTURECHANGED HEX: 0215
+CONSTANT: WM_MOVING HEX: 0216
+CONSTANT: WM_POWERBROADCAST HEX: 0218
+CONSTANT: WM_DEVICECHANGE HEX: 0219
+CONSTANT: WM_MDICREATE HEX: 0220
+CONSTANT: WM_MDIDESTROY HEX: 0221
+CONSTANT: WM_MDIACTIVATE HEX: 0222
+CONSTANT: WM_MDIRESTORE HEX: 0223
+CONSTANT: WM_MDINEXT HEX: 0224
+CONSTANT: WM_MDIMAXIMIZE HEX: 0225
+CONSTANT: WM_MDITILE HEX: 0226
+CONSTANT: WM_MDICASCADE HEX: 0227
+CONSTANT: WM_MDIICONARRANGE HEX: 0228
+CONSTANT: WM_MDIGETACTIVE HEX: 0229
+CONSTANT: WM_MDISETMENU HEX: 0230
+CONSTANT: WM_ENTERSIZEMOVE HEX: 0231
+CONSTANT: WM_EXITSIZEMOVE HEX: 0232
+CONSTANT: WM_DROPFILES HEX: 0233
+CONSTANT: WM_MDIREFRESHMENU HEX: 0234
+CONSTANT: WM_IME_SETCONTEXT HEX: 0281
+CONSTANT: WM_IME_NOTIFY HEX: 0282
+CONSTANT: WM_IME_CONTROL HEX: 0283
+CONSTANT: WM_IME_COMPOSITIONFULL HEX: 0284
+CONSTANT: WM_IME_SELECT HEX: 0285
+CONSTANT: WM_IME_CHAR HEX: 0286
+CONSTANT: WM_IME_REQUEST HEX: 0288
+CONSTANT: WM_IME_KEYDOWN HEX: 0290
+CONSTANT: WM_IME_KEYUP HEX: 0291
+CONSTANT: WM_MOUSEHOVER HEX: 02A1
+CONSTANT: WM_MOUSELEAVE HEX: 02A3
+CONSTANT: WM_NCMOUSEHOVER HEX: 02A0
+CONSTANT: WM_NCMOUSELEAVE HEX: 02A2
+CONSTANT: WM_WTSSESSION_CHANGE HEX: 02B1
+CONSTANT: WM_TABLET_FIRST HEX: 02c0
+CONSTANT: WM_TABLET_LAST HEX: 02df
+CONSTANT: WM_CUT HEX: 0300
+CONSTANT: WM_COPY HEX: 0301
+CONSTANT: WM_PASTE HEX: 0302
+CONSTANT: WM_CLEAR HEX: 0303
+CONSTANT: WM_UNDO HEX: 0304
+CONSTANT: WM_RENDERFORMAT HEX: 0305
+CONSTANT: WM_RENDERALLFORMATS HEX: 0306
+CONSTANT: WM_DESTROYCLIPBOARD HEX: 0307
+CONSTANT: WM_DRAWCLIPBOARD HEX: 0308
+CONSTANT: WM_PAINTCLIPBOARD HEX: 0309
+CONSTANT: WM_VSCROLLCLIPBOARD HEX: 030A
+CONSTANT: WM_SIZECLIPBOARD HEX: 030B
+CONSTANT: WM_ASKCBFORMATNAME HEX: 030C
+CONSTANT: WM_CHANGECBCHAIN HEX: 030D
+CONSTANT: WM_HSCROLLCLIPBOARD HEX: 030E
+CONSTANT: WM_QUERYNEWPALETTE HEX: 030F
+CONSTANT: WM_PALETTEISCHANGING HEX: 0310
+CONSTANT: WM_PALETTECHANGED HEX: 0311
+CONSTANT: WM_HOTKEY HEX: 0312
+CONSTANT: WM_PRINT HEX: 0317
+CONSTANT: WM_PRINTCLIENT HEX: 0318
+CONSTANT: WM_APPCOMMAND HEX: 0319
+CONSTANT: WM_THEMECHANGED HEX: 031A
+CONSTANT: WM_HANDHELDFIRST HEX: 0358
+CONSTANT: WM_HANDHELDLAST HEX: 035F
+CONSTANT: WM_AFXFIRST HEX: 0360
+CONSTANT: WM_AFXLAST HEX: 037F
+CONSTANT: WM_PENWINFIRST HEX: 0380
+CONSTANT: WM_PENWINLAST HEX: 038F
+CONSTANT: WM_APP HEX: 8000
+CONSTANT: WM_USER HEX: 0400
+CONSTANT: EM_GETSEL HEX: 00B0
+CONSTANT: EM_SETSEL HEX: 00B1
+CONSTANT: EM_GETRECT HEX: 00B2
+CONSTANT: EM_SETRECT HEX: 00B3
+CONSTANT: EM_SETRECTNP HEX: 00B4
+CONSTANT: EM_SCROLL HEX: 00B5
+CONSTANT: EM_LINESCROLL HEX: 00B6
+CONSTANT: EM_SCROLLCARET HEX: 00B7
+CONSTANT: EM_GETMODIFY HEX: 00B8
+CONSTANT: EM_SETMODIFY HEX: 00B9
+CONSTANT: EM_GETLINECOUNT HEX: 00BA
+CONSTANT: EM_LINEINDEX HEX: 00BB
+CONSTANT: EM_SETHANDLE HEX: 00BC
+CONSTANT: EM_GETHANDLE HEX: 00BD
+CONSTANT: EM_GETTHUMB HEX: 00BE
+CONSTANT: EM_LINELENGTH HEX: 00C1
+CONSTANT: EM_REPLACESEL HEX: 00C2
+CONSTANT: EM_GETLINE HEX: 00C4
+CONSTANT: EM_LIMITTEXT HEX: 00C5
+CONSTANT: EM_CANUNDO HEX: 00C6
+CONSTANT: EM_UNDO HEX: 00C7
+CONSTANT: EM_FMTLINES HEX: 00C8
+CONSTANT: EM_LINEFROMCHAR HEX: 00C9
+CONSTANT: EM_SETTABSTOPS HEX: 00CB
+CONSTANT: EM_SETPASSWORDCHAR HEX: 00CC
+CONSTANT: EM_EMPTYUNDOBUFFER HEX: 00CD
+CONSTANT: EM_GETFIRSTVISIBLELINE HEX: 00CE
+CONSTANT: EM_SETREADONLY HEX: 00CF
+CONSTANT: EM_SETWORDBREAKPROC HEX: 00D0
+CONSTANT: EM_GETWORDBREAKPROC HEX: 00D1
+CONSTANT: EM_GETPASSWORDCHAR HEX: 00D2
+CONSTANT: EM_SETMARGINS HEX: 00D3
+CONSTANT: EM_GETMARGINS HEX: 00D4
+ALIAS: EM_SETLIMITTEXT EM_LIMITTEXT
+CONSTANT: EM_GETLIMITTEXT HEX: 00D5
+CONSTANT: EM_POSFROMCHAR HEX: 00D6
+CONSTANT: EM_CHARFROMPOS HEX: 00D7
+CONSTANT: EM_SETIMESTATUS HEX: 00D8
+CONSTANT: EM_GETIMESTATUS HEX: 00D9
+CONSTANT: BM_GETCHECK HEX: 00F0
+CONSTANT: BM_SETCHECK HEX: 00F1
+CONSTANT: BM_GETSTATE HEX: 00F2
+CONSTANT: BM_SETSTATE HEX: 00F3
+CONSTANT: BM_SETSTYLE HEX: 00F4
+CONSTANT: BM_CLICK HEX: 00F5
+CONSTANT: BM_GETIMAGE HEX: 00F6
+CONSTANT: BM_SETIMAGE HEX: 00F7
+CONSTANT: STM_SETICON HEX: 0170
+CONSTANT: STM_GETICON HEX: 0171
+CONSTANT: STM_SETIMAGE HEX: 0172
+CONSTANT: STM_GETIMAGE HEX: 0173
+CONSTANT: STM_MSGMAX HEX: 0174
+CONSTANT: DM_GETDEFID WM_USER
+: DM_SETDEFID ( -- n ) ( -- n ) WM_USER 1  + ; inline
+: DM_REPOSITION ( -- n ) ( -- n ) WM_USER 2  + ; inline
+CONSTANT: LB_ADDSTRING HEX: 0180
+CONSTANT: LB_INSERTSTRING HEX: 0181
+CONSTANT: LB_DELETESTRING HEX: 0182
+CONSTANT: LB_SELITEMRANGEEX HEX: 0183
+CONSTANT: LB_RESETCONTENT HEX: 0184
+CONSTANT: LB_SETSEL HEX: 0185
+CONSTANT: LB_SETCURSEL HEX: 0186
+CONSTANT: LB_GETSEL HEX: 0187
+CONSTANT: LB_GETCURSEL HEX: 0188
+CONSTANT: LB_GETTEXT HEX: 0189
+CONSTANT: LB_GETTEXTLEN HEX: 018A
+CONSTANT: LB_GETCOUNT HEX: 018B
+CONSTANT: LB_SELECTSTRING HEX: 018C
+CONSTANT: LB_DIR HEX: 018D
+CONSTANT: LB_GETTOPINDEX HEX: 018E
+CONSTANT: LB_FINDSTRING HEX: 018F
+CONSTANT: LB_GETSELCOUNT HEX: 0190
+CONSTANT: LB_GETSELITEMS HEX: 0191
+CONSTANT: LB_SETTABSTOPS HEX: 0192
+CONSTANT: LB_GETHORIZONTALEXTENT HEX: 0193
+CONSTANT: LB_SETHORIZONTALEXTENT HEX: 0194
+CONSTANT: LB_SETCOLUMNWIDTH HEX: 0195
+CONSTANT: LB_ADDFILE HEX: 0196
+CONSTANT: LB_SETTOPINDEX HEX: 0197
+CONSTANT: LB_GETITEMRECT HEX: 0198
+CONSTANT: LB_GETITEMDATA HEX: 0199
+CONSTANT: LB_SETITEMDATA HEX: 019A
+CONSTANT: LB_SELITEMRANGE HEX: 019B
+CONSTANT: LB_SETANCHORINDEX HEX: 019C
+CONSTANT: LB_GETANCHORINDEX HEX: 019D
+CONSTANT: LB_SETCARETINDEX HEX: 019E
+CONSTANT: LB_GETCARETINDEX HEX: 019F
+CONSTANT: LB_SETITEMHEIGHT HEX: 01A0
+CONSTANT: LB_GETITEMHEIGHT HEX: 01A1
+CONSTANT: LB_FINDSTRINGEXACT HEX: 01A2
+CONSTANT: LB_SETLOCALE HEX: 01A5
+CONSTANT: LB_GETLOCALE HEX: 01A6
+CONSTANT: LB_SETCOUNT HEX: 01A7
+CONSTANT: LB_INITSTORAGE HEX: 01A8
+CONSTANT: LB_ITEMFROMPOINT HEX: 01A9
+CONSTANT: LB_MULTIPLEADDSTRING HEX: 01B1
+CONSTANT: LB_GETLISTBOXINFO HEX: 01B2
+CONSTANT: LB_MSGMAX_501 HEX: 01B3
+CONSTANT: LB_MSGMAX_WCE4 HEX: 01B1
+CONSTANT: LB_MSGMAX_4 HEX: 01B0
+CONSTANT: LB_MSGMAX_PRE4 HEX: 01A8
+CONSTANT: CB_GETEDITSEL HEX: 0140
+CONSTANT: CB_LIMITTEXT HEX: 0141
+CONSTANT: CB_SETEDITSEL HEX: 0142
+CONSTANT: CB_ADDSTRING HEX: 0143
+CONSTANT: CB_DELETESTRING HEX: 0144
+CONSTANT: CB_DIR HEX: 0145
+CONSTANT: CB_GETCOUNT HEX: 0146
+CONSTANT: CB_GETCURSEL HEX: 0147
+CONSTANT: CB_GETLBTEXT HEX: 0148
+CONSTANT: CB_GETLBTEXTLEN HEX: 0149
+CONSTANT: CB_INSERTSTRING HEX: 014A
+CONSTANT: CB_RESETCONTENT HEX: 014B
+CONSTANT: CB_FINDSTRING HEX: 014C
+CONSTANT: CB_SELECTSTRING HEX: 014D
+CONSTANT: CB_SETCURSEL HEX: 014E
+CONSTANT: CB_SHOWDROPDOWN HEX: 014F
+CONSTANT: CB_GETITEMDATA HEX: 0150
+CONSTANT: CB_SETITEMDATA HEX: 0151
+CONSTANT: CB_GETDROPPEDCONTROLRECT HEX: 0152
+CONSTANT: CB_SETITEMHEIGHT HEX: 0153
+CONSTANT: CB_GETITEMHEIGHT HEX: 0154
+CONSTANT: CB_SETEXTENDEDUI HEX: 0155
+CONSTANT: CB_GETEXTENDEDUI HEX: 0156
+CONSTANT: CB_GETDROPPEDSTATE HEX: 0157
+CONSTANT: CB_FINDSTRINGEXACT HEX: 0158
+CONSTANT: CB_SETLOCALE HEX: 0159
+CONSTANT: CB_GETLOCALE HEX: 015A
+CONSTANT: CB_GETTOPINDEX HEX: 015B
+CONSTANT: CB_SETTOPINDEX HEX: 015C
+CONSTANT: CB_GETHORIZONTALEXTENT HEX: 015d
+CONSTANT: CB_SETHORIZONTALEXTENT HEX: 015e
+CONSTANT: CB_GETDROPPEDWIDTH HEX: 015f
+CONSTANT: CB_SETDROPPEDWIDTH HEX: 0160
+CONSTANT: CB_INITSTORAGE HEX: 0161
+CONSTANT: CB_MULTIPLEADDSTRING HEX: 0163
+CONSTANT: CB_GETCOMBOBOXINFO HEX: 0164
+CONSTANT: CB_MSGMAX_501 HEX: 0165
+CONSTANT: CB_MSGMAX_WCE400 HEX: 0163
+CONSTANT: CB_MSGMAX_400 HEX: 0162
+CONSTANT: CB_MSGMAX_PRE400 HEX: 015B
+CONSTANT: SBM_SETPOS HEX: 00E0
+CONSTANT: SBM_GETPOS HEX: 00E1
+CONSTANT: SBM_SETRANGE HEX: 00E2
+CONSTANT: SBM_SETRANGEREDRAW HEX: 00E6
+CONSTANT: SBM_GETRANGE HEX: 00E3
+CONSTANT: SBM_ENABLE_ARROWS HEX: 00E4
+CONSTANT: SBM_SETSCROLLINFO HEX: 00E9
+CONSTANT: SBM_GETSCROLLINFO HEX: 00EA
+CONSTANT: SBM_GETSCROLLBARINFO HEX: 00EB
+CONSTANT: LVM_FIRST HEX: 1000 ! ListView messages
+CONSTANT: TV_FIRST HEX: 1100 ! TreeView messages
+CONSTANT: HDM_FIRST HEX: 1200 ! Header messages
+CONSTANT: TCM_FIRST HEX: 1300 ! Tab control messages
+CONSTANT: PGM_FIRST HEX: 1400 ! Pager control messages
+CONSTANT: ECM_FIRST HEX: 1500 ! Edit control messages
+CONSTANT: BCM_FIRST HEX: 1600 ! Button control messages
+CONSTANT: CBM_FIRST HEX: 1700 ! Combobox control messages
+CONSTANT: CCM_FIRST HEX: 2000 ! Common control shared messages
+: CCM_LAST ( -- n ) CCM_FIRST HEX: 0200  + ; inline
+: CCM_SETBKCOLOR ( -- n ) CCM_FIRST  1  + ; inline
+: CCM_SETCOLORSCHEME ( -- n ) CCM_FIRST  2  + ; inline
+: CCM_GETCOLORSCHEME ( -- n ) CCM_FIRST  3  + ; inline
+: CCM_GETDROPTARGET ( -- n ) CCM_FIRST  4  + ; inline
+: CCM_SETUNICODEFORMAT ( -- n ) CCM_FIRST  5  + ; inline
+: CCM_GETUNICODEFORMAT ( -- n ) CCM_FIRST  6  + ; inline
+: CCM_SETVERSION ( -- n ) CCM_FIRST  7  + ; inline
+: CCM_GETVERSION ( -- n ) CCM_FIRST  8  + ; inline
+: CCM_SETNOTIFYWINDOW ( -- n ) CCM_FIRST  9  + ; inline
+: CCM_SETWINDOWTHEME ( -- n ) CCM_FIRST  HEX: b  + ; inline
+: CCM_DPISCALE ( -- n ) CCM_FIRST  HEX: c  + ; inline
+: HDM_GETITEMCOUNT ( -- n ) HDM_FIRST  0  + ; inline
+: HDM_INSERTITEMA ( -- n ) HDM_FIRST  1  + ; inline
+: HDM_INSERTITEMW ( -- n ) HDM_FIRST  10  + ; inline
+: HDM_DELETEITEM ( -- n ) HDM_FIRST  2  + ; inline
+: HDM_GETITEMA ( -- n ) HDM_FIRST  3  + ; inline
+: HDM_GETITEMW ( -- n ) HDM_FIRST  11  + ; inline
+: HDM_SETITEMA ( -- n ) HDM_FIRST  4  + ; inline
+: HDM_SETITEMW ( -- n ) HDM_FIRST  12  + ; inline
+: HDM_LAYOUT ( -- n ) HDM_FIRST  5  + ; inline
+: HDM_HITTEST ( -- n ) HDM_FIRST  6  + ; inline
+: HDM_GETITEMRECT ( -- n ) HDM_FIRST  7  + ; inline
+: HDM_SETIMAGELIST ( -- n ) HDM_FIRST  8  + ; inline
+: HDM_GETIMAGELIST ( -- n ) HDM_FIRST  9  + ; inline
+: HDM_ORDERTOINDEX ( -- n ) HDM_FIRST  15  + ; inline
+: HDM_CREATEDRAGIMAGE ( -- n ) HDM_FIRST  16  + ; inline
+: HDM_GETORDERARRAY ( -- n ) HDM_FIRST  17  + ; inline
+: HDM_SETORDERARRAY ( -- n ) HDM_FIRST  18  + ; inline
+: HDM_SETHOTDIVIDER ( -- n ) HDM_FIRST  19  + ; inline
+: HDM_SETBITMAPMARGIN ( -- n ) HDM_FIRST  20  + ; inline
+: HDM_GETBITMAPMARGIN ( -- n ) HDM_FIRST  21  + ; inline
+CONSTANT: HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+CONSTANT: HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT   
+: HDM_SETFILTERCHANGETIMEOUT ( -- n ) HDM_FIRST 22  + ; inline
+: HDM_EDITFILTER ( -- n ) HDM_FIRST 23  + ; inline
+: HDM_CLEARFILTER ( -- n ) HDM_FIRST 24  + ; inline
+: TB_ENABLEBUTTON ( -- n ) WM_USER 1  + ; inline
+: TB_CHECKBUTTON ( -- n ) WM_USER 2  + ; inline
+: TB_PRESSBUTTON ( -- n ) WM_USER 3  + ; inline
+: TB_HIDEBUTTON ( -- n ) WM_USER  4  + ; inline
+: TB_INDETERMINATE ( -- n ) WM_USER  5  + ; inline
+: TB_MARKBUTTON ( -- n ) WM_USER  6  + ; inline
+: TB_ISBUTTONENABLED ( -- n ) WM_USER  9  + ; inline
+: TB_ISBUTTONCHECKED ( -- n ) WM_USER  10  + ; inline
+: TB_ISBUTTONPRESSED ( -- n ) WM_USER  11  + ; inline
+: TB_ISBUTTONHIDDEN ( -- n ) WM_USER  12  + ; inline
+: TB_ISBUTTONINDETERMINATE ( -- n ) WM_USER  13  + ; inline
+: TB_ISBUTTONHIGHLIGHTED ( -- n ) WM_USER  14  + ; inline
+: TB_SETSTATE ( -- n ) WM_USER  17  + ; inline
+: TB_GETSTATE ( -- n ) WM_USER  18  + ; inline
+: TB_ADDBITMAP ( -- n ) WM_USER  19  + ; inline
+: TB_ADDBUTTONSA ( -- n ) WM_USER  20  + ; inline
+: TB_INSERTBUTTONA ( -- n ) WM_USER  21  + ; inline
+: TB_ADDBUTTONS ( -- n ) WM_USER  20  + ; inline
+: TB_INSERTBUTTON ( -- n ) WM_USER  21  + ; inline
+: TB_DELETEBUTTON ( -- n ) WM_USER  22  + ; inline
+: TB_GETBUTTON ( -- n ) WM_USER  23  + ; inline
+: TB_BUTTONCOUNT ( -- n ) WM_USER  24  + ; inline
+: TB_COMMANDTOINDEX ( -- n ) WM_USER  25  + ; inline
+: TB_SAVERESTOREA ( -- n ) WM_USER  26  + ; inline
+: TB_SAVERESTOREW ( -- n ) WM_USER  76  + ; inline
+: TB_CUSTOMIZE ( -- n ) WM_USER  27  + ; inline
+: TB_ADDSTRINGA ( -- n ) WM_USER  28  + ; inline
+: TB_ADDSTRINGW ( -- n ) WM_USER  77  + ; inline
+: TB_GETITEMRECT ( -- n ) WM_USER  29  + ; inline
+: TB_BUTTONSTRUCTSIZE ( -- n ) WM_USER  30  + ; inline
+: TB_SETBUTTONSIZE ( -- n ) WM_USER  31  + ; inline
+: TB_SETBITMAPSIZE ( -- n ) WM_USER  32  + ; inline
+: TB_AUTOSIZE ( -- n ) WM_USER  33  + ; inline
+: TB_GETTOOLTIPS ( -- n ) WM_USER  35  + ; inline
+: TB_SETTOOLTIPS ( -- n ) WM_USER  36  + ; inline
+: TB_SETPARENT ( -- n ) WM_USER  37  + ; inline
+: TB_SETROWS ( -- n ) WM_USER  39  + ; inline
+: TB_GETROWS ( -- n ) WM_USER  40  + ; inline
+: TB_SETCMDID ( -- n ) WM_USER  42  + ; inline
+: TB_CHANGEBITMAP ( -- n ) WM_USER  43  + ; inline
+: TB_GETBITMAP ( -- n ) WM_USER  44  + ; inline
+: TB_GETBUTTONTEXTA ( -- n ) WM_USER  45  + ; inline
+: TB_GETBUTTONTEXTW ( -- n ) WM_USER  75  + ; inline
+: TB_REPLACEBITMAP ( -- n ) WM_USER  46  + ; inline
+: TB_SETINDENT ( -- n ) WM_USER  47  + ; inline
+: TB_SETIMAGELIST ( -- n ) WM_USER  48  + ; inline
+: TB_GETIMAGELIST ( -- n ) WM_USER  49  + ; inline
+: TB_LOADIMAGES ( -- n ) WM_USER  50  + ; inline
+: TB_GETRECT ( -- n ) WM_USER  51  + ; inline
+: TB_SETHOTIMAGELIST ( -- n ) WM_USER  52  + ; inline
+: TB_GETHOTIMAGELIST ( -- n ) WM_USER  53  + ; inline
+: TB_SETDISABLEDIMAGELIST ( -- n ) WM_USER  54  + ; inline
+: TB_GETDISABLEDIMAGELIST ( -- n ) WM_USER  55  + ; inline
+: TB_SETSTYLE ( -- n ) WM_USER  56  + ; inline
+: TB_GETSTYLE ( -- n ) WM_USER  57  + ; inline
+: TB_GETBUTTONSIZE ( -- n ) WM_USER  58  + ; inline
+: TB_SETBUTTONWIDTH ( -- n ) WM_USER  59  + ; inline
+: TB_SETMAXTEXTROWS ( -- n ) WM_USER  60  + ; inline
+: TB_GETTEXTROWS ( -- n ) WM_USER  61  + ; inline
+: TB_GETOBJECT ( -- n ) WM_USER  62  + ; inline
+: TB_GETHOTITEM ( -- n ) WM_USER  71  + ; inline
+: TB_SETHOTITEM ( -- n ) WM_USER  72  + ; inline
+: TB_SETANCHORHIGHLIGHT ( -- n ) WM_USER  73  + ; inline
+: TB_GETANCHORHIGHLIGHT ( -- n ) WM_USER  74  + ; inline
+: TB_MAPACCELERATORA ( -- n ) WM_USER  78  + ; inline
+: TB_GETINSERTMARK ( -- n ) WM_USER  79  + ; inline
+: TB_SETINSERTMARK ( -- n ) WM_USER  80  + ; inline
+: TB_INSERTMARKHITTEST ( -- n ) WM_USER  81  + ; inline
+: TB_MOVEBUTTON ( -- n ) WM_USER  82  + ; inline
+: TB_GETMAXSIZE ( -- n ) WM_USER  83  + ; inline
+: TB_SETEXTENDEDSTYLE ( -- n ) WM_USER  84  + ; inline
+: TB_GETEXTENDEDSTYLE ( -- n ) WM_USER  85  + ; inline
+: TB_GETPADDING ( -- n ) WM_USER  86  + ; inline
+: TB_SETPADDING ( -- n ) WM_USER  87  + ; inline
+: TB_SETINSERTMARKCOLOR ( -- n ) WM_USER  88  + ; inline
+: TB_GETINSERTMARKCOLOR ( -- n ) WM_USER  89  + ; inline
+ALIAS: TB_SETCOLORSCHEME CCM_SETCOLORSCHEME
+ALIAS: TB_GETCOLORSCHEME CCM_GETCOLORSCHEME
+ALIAS: TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: TB_MAPACCELERATORW ( -- n ) WM_USER  90  + ; inline
+: TB_GETBITMAPFLAGS ( -- n ) WM_USER  41  + ; inline
+: TB_GETBUTTONINFOW ( -- n ) WM_USER  63  + ; inline
+: TB_SETBUTTONINFOW ( -- n ) WM_USER  64  + ; inline
+: TB_GETBUTTONINFOA ( -- n ) WM_USER  65  + ; inline
+: TB_SETBUTTONINFOA ( -- n ) WM_USER  66  + ; inline
+: TB_INSERTBUTTONW ( -- n ) WM_USER  67  + ; inline
+: TB_ADDBUTTONSW ( -- n ) WM_USER  68  + ; inline
+: TB_HITTEST ( -- n ) WM_USER  69  + ; inline
+: TB_SETDRAWTEXTFLAGS ( -- n ) WM_USER  70  + ; inline
+: TB_GETSTRINGW ( -- n ) WM_USER  91  + ; inline
+: TB_GETSTRINGA ( -- n ) WM_USER  92  + ; inline
+: TB_GETMETRICS ( -- n ) WM_USER  101  + ; inline
+: TB_SETMETRICS ( -- n ) WM_USER  102  + ; inline
+ALIAS: TB_SETWINDOWTHEME CCM_SETWINDOWTHEME
+: RB_INSERTBANDA ( -- n ) WM_USER  1  + ; inline
+: RB_DELETEBAND ( -- n ) WM_USER  2  + ; inline
+: RB_GETBARINFO ( -- n ) WM_USER  3  + ; inline
+: RB_SETBARINFO ( -- n ) WM_USER  4  + ; inline
+: RB_GETBANDINFO ( -- n ) WM_USER  5  + ; inline
+: RB_SETBANDINFOA ( -- n ) WM_USER  6  + ; inline
+: RB_SETPARENT ( -- n ) WM_USER  7  + ; inline
+: RB_HITTEST ( -- n ) WM_USER  8  + ; inline
+: RB_GETRECT ( -- n ) WM_USER  9  + ; inline
+: RB_INSERTBANDW ( -- n ) WM_USER  10  + ; inline
+: RB_SETBANDINFOW ( -- n ) WM_USER  11  + ; inline
+: RB_GETBANDCOUNT ( -- n ) WM_USER  12  + ; inline
+: RB_GETROWCOUNT ( -- n ) WM_USER  13  + ; inline
+: RB_GETROWHEIGHT ( -- n ) WM_USER  14  + ; inline
+: RB_IDTOINDEX ( -- n ) WM_USER  16  + ; inline
+: RB_GETTOOLTIPS ( -- n ) WM_USER  17  + ; inline
+: RB_SETTOOLTIPS ( -- n ) WM_USER  18  + ; inline
+: RB_SETBKCOLOR ( -- n ) WM_USER  19  + ; inline
+: RB_GETBKCOLOR ( -- n ) WM_USER  20  + ; inline
+: RB_SETTEXTCOLOR ( -- n ) WM_USER  21  + ; inline
+: RB_GETTEXTCOLOR ( -- n ) WM_USER  22  + ; inline
+: RB_SIZETORECT ( -- n ) WM_USER  23  + ; inline
+CONSTANT: RB_SETCOLORSCHEME CCM_SETCOLORSCHEME
+CONSTANT: RB_GETCOLORSCHEME CCM_GETCOLORSCHEME
+: RB_BEGINDRAG ( -- n ) WM_USER  24  + ; inline
+: RB_ENDDRAG ( -- n ) WM_USER  25  + ; inline
+: RB_DRAGMOVE ( -- n ) WM_USER  26  + ; inline
+: RB_GETBARHEIGHT ( -- n ) WM_USER  27  + ; inline
+: RB_GETBANDINFOW ( -- n ) WM_USER  28  + ; inline
+: RB_GETBANDINFOA ( -- n ) WM_USER  29  + ; inline
+: RB_MINIMIZEBAND ( -- n ) WM_USER  30  + ; inline
+: RB_MAXIMIZEBAND ( -- n ) WM_USER  31  + ; inline
+ALIAS: RB_GETDROPTARGET CCM_GETDROPTARGET
+: RB_GETBANDBORDERS ( -- n ) WM_USER  34  + ; inline
+: RB_SHOWBAND ( -- n ) WM_USER  35  + ; inline
+: RB_SETPALETTE ( -- n ) WM_USER  37  + ; inline
+: RB_GETPALETTE ( -- n ) WM_USER  38  + ; inline
+: RB_MOVEBAND ( -- n ) WM_USER  39  + ; inline
+CONSTANT: RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+CONSTANT: RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: RB_GETBANDMARGINS ( -- n ) WM_USER  40  + ; inline
+ALIAS: RB_SETWINDOWTHEME CCM_SETWINDOWTHEME
+: RB_PUSHCHEVRON ( -- n ) WM_USER  43  + ; inline
+: TTM_ACTIVATE ( -- n ) WM_USER  1  + ; inline
+: TTM_SETDELAYTIME ( -- n ) WM_USER  3  + ; inline
+: TTM_ADDTOOLA ( -- n ) WM_USER  4  + ; inline
+: TTM_ADDTOOLW ( -- n ) WM_USER  50  + ; inline
+: TTM_DELTOOLA ( -- n ) WM_USER  5  + ; inline
+: TTM_DELTOOLW ( -- n ) WM_USER  51  + ; inline
+: TTM_NEWTOOLRECTA ( -- n ) WM_USER  6  + ; inline
+: TTM_NEWTOOLRECTW ( -- n ) WM_USER  52  + ; inline
+: TTM_RELAYEVENT ( -- n ) WM_USER  7  + ; inline
+: TTM_GETTOOLINFOA ( -- n ) WM_USER  8  + ; inline
+: TTM_GETTOOLINFOW ( -- n ) WM_USER  53  + ; inline
+: TTM_SETTOOLINFOA ( -- n ) WM_USER  9  + ; inline
+: TTM_SETTOOLINFOW ( -- n ) WM_USER  54  + ; inline
+: TTM_HITTESTA ( -- n ) WM_USER 10  + ; inline
+: TTM_HITTESTW ( -- n ) WM_USER 55  + ; inline
+: TTM_GETTEXTA ( -- n ) WM_USER 11  + ; inline
+: TTM_GETTEXTW ( -- n ) WM_USER 56  + ; inline
+: TTM_UPDATETIPTEXTA ( -- n ) WM_USER 12  + ; inline
+: TTM_UPDATETIPTEXTW ( -- n ) WM_USER 57  + ; inline
+: TTM_GETTOOLCOUNT ( -- n ) WM_USER 13  + ; inline
+: TTM_ENUMTOOLSA ( -- n ) WM_USER 14  + ; inline
+: TTM_ENUMTOOLSW ( -- n ) WM_USER 58  + ; inline
+: TTM_GETCURRENTTOOLA ( -- n ) WM_USER  15  + ; inline
+: TTM_GETCURRENTTOOLW ( -- n ) WM_USER  59  + ; inline
+: TTM_WINDOWFROMPOINT ( -- n ) WM_USER  16  + ; inline
+: TTM_TRACKACTIVATE ( -- n ) WM_USER  17  + ; inline
+: TTM_TRACKPOSITION ( -- n ) WM_USER  18  + ; inline
+: TTM_SETTIPBKCOLOR ( -- n ) WM_USER  19  + ; inline
+: TTM_SETTIPTEXTCOLOR ( -- n ) WM_USER  20  + ; inline
+: TTM_GETDELAYTIME ( -- n ) WM_USER  21  + ; inline
+: TTM_GETTIPBKCOLOR ( -- n ) WM_USER  22  + ; inline
+: TTM_GETTIPTEXTCOLOR ( -- n ) WM_USER  23  + ; inline
+: TTM_SETMAXTIPWIDTH ( -- n ) WM_USER  24  + ; inline
+: TTM_GETMAXTIPWIDTH ( -- n ) WM_USER  25  + ; inline
+: TTM_SETMARGIN ( -- n ) WM_USER  26  + ; inline
+: TTM_GETMARGIN ( -- n ) WM_USER  27  + ; inline
+: TTM_POP ( -- n ) WM_USER  28  + ; inline
+: TTM_UPDATE ( -- n ) WM_USER  29  + ; inline
+: TTM_GETBUBBLESIZE ( -- n ) WM_USER  30  + ; inline
+: TTM_ADJUSTRECT ( -- n ) WM_USER  31  + ; inline
+: TTM_SETTITLEA ( -- n ) WM_USER  32  + ; inline
+: TTM_SETTITLEW ( -- n ) WM_USER  33  + ; inline
+: TTM_POPUP ( -- n ) WM_USER  34  + ; inline
+: TTM_GETTITLE ( -- n ) WM_USER  35  + ; inline
+ALIAS: TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME
+: SB_SETTEXTA ( -- n ) WM_USER 1 + ; inline
+: SB_SETTEXTW ( -- n ) WM_USER 11  + ; inline
+: SB_GETTEXTA ( -- n ) WM_USER 2  + ; inline
+: SB_GETTEXTW ( -- n ) WM_USER 13  + ; inline
+: SB_GETTEXTLENGTHA ( -- n ) WM_USER 3  + ; inline
+: SB_GETTEXTLENGTHW ( -- n ) WM_USER 12  + ; inline
+: SB_SETPARTS ( -- n ) WM_USER 4  + ; inline
+: SB_GETPARTS ( -- n ) WM_USER 6  + ; inline
+: SB_GETBORDERS ( -- n ) WM_USER 7  + ; inline
+: SB_SETMINHEIGHT ( -- n ) WM_USER 8  + ; inline
+: SB_SIMPLE ( -- n ) WM_USER 9  + ; inline
+: SB_GETRECT ( -- n ) WM_USER 10  + ; inline
+: SB_ISSIMPLE ( -- n ) WM_USER 14  + ; inline
+: SB_SETICON ( -- n ) WM_USER 15  + ; inline
+: SB_SETTIPTEXTA ( -- n ) WM_USER 16  + ; inline
+: SB_SETTIPTEXTW ( -- n ) WM_USER 17  + ; inline
+: SB_GETTIPTEXTA ( -- n ) WM_USER 18  + ; inline
+: SB_GETTIPTEXTW ( -- n ) WM_USER 19  + ; inline
+: SB_GETICON ( -- n ) WM_USER 20  + ; inline
+CONSTANT: SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+CONSTANT: SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+ALIAS: SB_SETBKCOLOR CCM_SETBKCOLOR
+CONSTANT: SB_SIMPLEID HEX: 00ff
+ALIAS: TBM_GETPOS WM_USER
+: TBM_GETRANGEMIN ( -- n ) WM_USER 1  + ; inline
+: TBM_GETRANGEMAX ( -- n ) WM_USER 2  + ; inline
+: TBM_GETTIC ( -- n ) WM_USER 3  + ; inline
+: TBM_SETTIC ( -- n ) WM_USER 4  + ; inline
+: TBM_SETPOS ( -- n ) WM_USER 5  + ; inline
+: TBM_SETRANGE ( -- n ) WM_USER 6  + ; inline
+: TBM_SETRANGEMIN ( -- n ) WM_USER 7  + ; inline
+: TBM_SETRANGEMAX ( -- n ) WM_USER 8  + ; inline
+: TBM_CLEARTICS ( -- n ) WM_USER 9  + ; inline
+: TBM_SETSEL ( -- n ) WM_USER 10  + ; inline
+: TBM_SETSELSTART ( -- n ) WM_USER 11  + ; inline
+: TBM_SETSELEND ( -- n ) WM_USER 12  + ; inline
+: TBM_GETPTICS ( -- n ) WM_USER 14  + ; inline
+: TBM_GETTICPOS ( -- n ) WM_USER 15  + ; inline
+: TBM_GETNUMTICS ( -- n ) WM_USER 16  + ; inline
+: TBM_GETSELSTART ( -- n ) WM_USER 17  + ; inline
+: TBM_GETSELEND ( -- n ) WM_USER 18  + ; inline
+: TBM_CLEARSEL ( -- n ) WM_USER 19  + ; inline
+: TBM_SETTICFREQ ( -- n ) WM_USER 20  + ; inline
+: TBM_SETPAGESIZE ( -- n ) WM_USER 21  + ; inline
+: TBM_GETPAGESIZE ( -- n ) WM_USER 22  + ; inline
+: TBM_SETLINESIZE ( -- n ) WM_USER 23  + ; inline
+: TBM_GETLINESIZE ( -- n ) WM_USER 24  + ; inline
+: TBM_GETTHUMBRECT ( -- n ) WM_USER 25  + ; inline
+: TBM_GETCHANNELRECT ( -- n ) WM_USER 26  + ; inline
+: TBM_SETTHUMBLENGTH ( -- n ) WM_USER 27  + ; inline
+: TBM_GETTHUMBLENGTH ( -- n ) WM_USER 28  + ; inline
+: TBM_SETTOOLTIPS ( -- n ) WM_USER 29  + ; inline
+: TBM_GETTOOLTIPS ( -- n ) WM_USER 30  + ; inline
+: TBM_SETTIPSIDE ( -- n ) WM_USER 31  + ; inline
+: TBM_SETBUDDY ( -- n ) WM_USER 32  + ; inline
+: TBM_GETBUDDY ( -- n ) WM_USER 33  + ; inline
+ALIAS: TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: DL_BEGINDRAG ( -- n ) WM_USER 133  + ; inline
+: DL_DRAGGING ( -- n ) WM_USER 134  + ; inline
+: DL_DROPPED ( -- n ) WM_USER 135  + ; inline
+: DL_CANCELDRAG ( -- n ) WM_USER 136  + ; inline
+: UDM_SETRANGE ( -- n ) WM_USER 101  + ; inline
+: UDM_GETRANGE ( -- n ) WM_USER 102  + ; inline
+: UDM_SETPOS ( -- n ) WM_USER 103  + ; inline
+: UDM_GETPOS ( -- n ) WM_USER 104  + ; inline
+: UDM_SETBUDDY ( -- n ) WM_USER 105  + ; inline
+: UDM_GETBUDDY ( -- n ) WM_USER 106  + ; inline
+: UDM_SETACCEL ( -- n ) WM_USER 107  + ; inline
+: UDM_GETACCEL ( -- n ) WM_USER 108  + ; inline
+: UDM_SETBASE ( -- n ) WM_USER 109  + ; inline
+: UDM_GETBASE ( -- n ) WM_USER 110  + ; inline
+: UDM_SETRANGE32 ( -- n ) WM_USER 111  + ; inline
+: UDM_GETRANGE32 ( -- n ) WM_USER 112  + ; inline
+ALIAS: UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: UDM_SETPOS32 ( -- n ) WM_USER 113  + ; inline
+: UDM_GETPOS32 ( -- n ) WM_USER 114  + ; inline
+: PBM_SETRANGE ( -- n ) WM_USER 1  + ; inline
+: PBM_SETPOS ( -- n ) WM_USER 2  + ; inline
+: PBM_DELTAPOS ( -- n ) WM_USER 3  + ; inline
+: PBM_SETSTEP ( -- n ) WM_USER 4  + ; inline
+: PBM_STEPIT ( -- n ) WM_USER 5  + ; inline
+: PBM_SETRANGE32 ( -- n ) WM_USER 6  + ; inline
+: PBM_GETRANGE ( -- n ) WM_USER 7  + ; inline
+: PBM_GETPOS ( -- n ) WM_USER 8  + ; inline
+: PBM_SETBARCOLOR ( -- n ) WM_USER 9  + ; inline
+ALIAS: PBM_SETBKCOLOR CCM_SETBKCOLOR
+: HKM_SETHOTKEY ( -- n ) WM_USER 1  + ; inline
+: HKM_GETHOTKEY ( -- n ) WM_USER 2  + ; inline
+: HKM_SETRULES ( -- n ) WM_USER 3  + ; inline
+ALIAS: LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: LVM_GETBKCOLOR ( -- n ) LVM_FIRST  0  + ; inline
+: LVM_SETBKCOLOR ( -- n ) LVM_FIRST  1  + ; inline
+: LVM_GETIMAGELIST ( -- n ) LVM_FIRST  2  + ; inline
+: LVM_SETIMAGELIST ( -- n ) LVM_FIRST  3  + ; inline
+: LVM_GETITEMCOUNT ( -- n ) LVM_FIRST  4  + ; inline
+: LVM_GETITEMA ( -- n ) LVM_FIRST  5  + ; inline
+: LVM_GETITEMW ( -- n ) LVM_FIRST  75  + ; inline
+: LVM_SETITEMA ( -- n ) LVM_FIRST  6  + ; inline
+: LVM_SETITEMW ( -- n ) LVM_FIRST  76  + ; inline
+: LVM_INSERTITEMA ( -- n ) LVM_FIRST  7  + ; inline
+: LVM_INSERTITEMW ( -- n ) LVM_FIRST  77  + ; inline
+: LVM_DELETEITEM ( -- n ) LVM_FIRST  8  + ; inline
+: LVM_DELETEALLITEMS ( -- n ) LVM_FIRST  9  + ; inline
+: LVM_GETCALLBACKMASK ( -- n ) LVM_FIRST  10  + ; inline
+: LVM_SETCALLBACKMASK ( -- n ) LVM_FIRST  11  + ; inline
+: LVM_FINDITEMA ( -- n ) LVM_FIRST  13  + ; inline
+: LVM_FINDITEMW ( -- n ) LVM_FIRST  83  + ; inline
+: LVM_GETITEMRECT ( -- n ) LVM_FIRST  14  + ; inline
+: LVM_SETITEMPOSITION ( -- n ) LVM_FIRST  15  + ; inline
+: LVM_GETITEMPOSITION ( -- n ) LVM_FIRST  16  + ; inline
+: LVM_GETSTRINGWIDTHA ( -- n ) LVM_FIRST  17  + ; inline
+: LVM_GETSTRINGWIDTHW ( -- n ) LVM_FIRST  87  + ; inline
+: LVM_HITTEST ( -- n ) LVM_FIRST  18  + ; inline
+: LVM_ENSUREVISIBLE ( -- n ) LVM_FIRST  19  + ; inline
+: LVM_SCROLL ( -- n ) LVM_FIRST  20  + ; inline
+: LVM_REDRAWITEMS ( -- n ) LVM_FIRST  21  + ; inline
+: LVM_ARRANGE ( -- n ) LVM_FIRST  22  + ; inline
+: LVM_EDITLABELA ( -- n ) LVM_FIRST  23  + ; inline
+: LVM_EDITLABELW ( -- n ) LVM_FIRST  118  + ; inline
+: LVM_GETEDITCONTROL ( -- n ) LVM_FIRST  24  + ; inline
+: LVM_GETCOLUMNA ( -- n ) LVM_FIRST  25  + ; inline
+: LVM_GETCOLUMNW ( -- n ) LVM_FIRST  95  + ; inline
+: LVM_SETCOLUMNA ( -- n ) LVM_FIRST  26  + ; inline
+: LVM_SETCOLUMNW ( -- n ) LVM_FIRST  96  + ; inline
+: LVM_INSERTCOLUMNA ( -- n ) LVM_FIRST  27  + ; inline
+: LVM_INSERTCOLUMNW ( -- n ) LVM_FIRST  97  + ; inline
+: LVM_DELETECOLUMN ( -- n ) LVM_FIRST  28  + ; inline
+: LVM_GETCOLUMNWIDTH ( -- n ) LVM_FIRST  29  + ; inline
+: LVM_SETCOLUMNWIDTH ( -- n ) LVM_FIRST  30  + ; inline
+: LVM_CREATEDRAGIMAGE ( -- n ) LVM_FIRST  33  + ; inline
+: LVM_GETVIEWRECT ( -- n ) LVM_FIRST  34  + ; inline
+: LVM_GETTEXTCOLOR ( -- n ) LVM_FIRST  35  + ; inline
+: LVM_SETTEXTCOLOR ( -- n ) LVM_FIRST  36  + ; inline
+: LVM_GETTEXTBKCOLOR ( -- n ) LVM_FIRST  37  + ; inline
+: LVM_SETTEXTBKCOLOR ( -- n ) LVM_FIRST  38  + ; inline
+: LVM_GETTOPINDEX ( -- n ) LVM_FIRST  39  + ; inline
+: LVM_GETCOUNTPERPAGE ( -- n ) LVM_FIRST  40  + ; inline
+: LVM_GETORIGIN ( -- n ) LVM_FIRST  41  + ; inline
+: LVM_UPDATE ( -- n ) LVM_FIRST  42  + ; inline
+: LVM_SETITEMSTATE ( -- n ) LVM_FIRST  43  + ; inline
+: LVM_GETITEMSTATE ( -- n ) LVM_FIRST  44  + ; inline
+: LVM_GETITEMTEXTA ( -- n ) LVM_FIRST  45  + ; inline
+: LVM_GETITEMTEXTW ( -- n ) LVM_FIRST  115  + ; inline
+: LVM_SETITEMTEXTA ( -- n ) LVM_FIRST  46  + ; inline
+: LVM_SETITEMTEXTW ( -- n ) LVM_FIRST  116  + ; inline
+: LVM_SETITEMCOUNT ( -- n ) LVM_FIRST  47  + ; inline
+: LVM_SORTITEMS ( -- n ) LVM_FIRST  48  + ; inline
+: LVM_SETITEMPOSITION32 ( -- n ) LVM_FIRST  49  + ; inline
+: LVM_GETSELECTEDCOUNT ( -- n ) LVM_FIRST  50  + ; inline
+: LVM_GETITEMSPACING ( -- n ) LVM_FIRST  51  + ; inline
+: LVM_GETISEARCHSTRINGA ( -- n ) LVM_FIRST  52  + ; inline
+: LVM_GETISEARCHSTRINGW ( -- n ) LVM_FIRST  117  + ; inline
+: LVM_SETICONSPACING ( -- n ) LVM_FIRST  53  + ; inline
+: LVM_SETEXTENDEDLISTVIEWSTYLE ( -- n ) LVM_FIRST  54  + ; inline
+: LVM_GETEXTENDEDLISTVIEWSTYLE ( -- n ) LVM_FIRST  55  + ; inline
+: LVM_GETSUBITEMRECT ( -- n ) LVM_FIRST  56  + ; inline
+: LVM_SUBITEMHITTEST ( -- n ) LVM_FIRST  57  + ; inline
+: LVM_SETCOLUMNORDERARRAY ( -- n ) LVM_FIRST  58  + ; inline
+: LVM_GETCOLUMNORDERARRAY ( -- n ) LVM_FIRST  59  + ; inline
+: LVM_SETHOTITEM ( -- n ) LVM_FIRST  60  + ; inline
+: LVM_GETHOTITEM ( -- n ) LVM_FIRST  61  + ; inline
+: LVM_SETHOTCURSOR ( -- n ) LVM_FIRST  62  + ; inline
+: LVM_GETHOTCURSOR ( -- n ) LVM_FIRST  63  + ; inline
+: LVM_APPROXIMATEVIEWRECT ( -- n ) LVM_FIRST  64  + ; inline
+: LVM_SETWORKAREAS ( -- n ) LVM_FIRST  65  + ; inline
+: LVM_GETWORKAREAS ( -- n ) LVM_FIRST  70  + ; inline
+: LVM_GETNUMBEROFWORKAREAS ( -- n ) LVM_FIRST  73  + ; inline
+: LVM_GETSELECTIONMARK ( -- n ) LVM_FIRST  66  + ; inline
+: LVM_SETSELECTIONMARK ( -- n ) LVM_FIRST  67  + ; inline
+: LVM_SETHOVERTIME ( -- n ) LVM_FIRST  71  + ; inline
+: LVM_GETHOVERTIME ( -- n ) LVM_FIRST  72  + ; inline
+: LVM_SETTOOLTIPS ( -- n ) LVM_FIRST  74  + ; inline
+: LVM_GETTOOLTIPS ( -- n ) LVM_FIRST  78  + ; inline
+: LVM_SORTITEMSEX ( -- n ) LVM_FIRST  81  + ; inline
+: LVM_SETBKIMAGEA ( -- n ) LVM_FIRST  68  + ; inline
+: LVM_SETBKIMAGEW ( -- n ) LVM_FIRST  138  + ; inline
+: LVM_GETBKIMAGEA ( -- n ) LVM_FIRST  69  + ; inline
+: LVM_GETBKIMAGEW ( -- n ) LVM_FIRST  139  + ; inline
+: LVM_SETSELECTEDCOLUMN ( -- n ) LVM_FIRST  140  + ; inline
+: LVM_SETTILEWIDTH ( -- n ) LVM_FIRST  141  + ; inline
+: LVM_SETVIEW ( -- n ) LVM_FIRST  142  + ; inline
+: LVM_GETVIEW ( -- n ) LVM_FIRST  143  + ; inline
+: LVM_INSERTGROUP ( -- n ) LVM_FIRST  145  + ; inline
+: LVM_SETGROUPINFO ( -- n ) LVM_FIRST  147  + ; inline
+: LVM_GETGROUPINFO ( -- n ) LVM_FIRST  149  + ; inline
+: LVM_REMOVEGROUP ( -- n ) LVM_FIRST  150  + ; inline
+: LVM_MOVEGROUP ( -- n ) LVM_FIRST  151  + ; inline
+: LVM_MOVEITEMTOGROUP ( -- n ) LVM_FIRST  154  + ; inline
+: LVM_SETGROUPMETRICS ( -- n ) LVM_FIRST  155  + ; inline
+: LVM_GETGROUPMETRICS ( -- n ) LVM_FIRST  156  + ; inline
+: LVM_ENABLEGROUPVIEW ( -- n ) LVM_FIRST  157  + ; inline
+: LVM_SORTGROUPS ( -- n ) LVM_FIRST  158  + ; inline
+: LVM_INSERTGROUPSORTED ( -- n ) LVM_FIRST  159  + ; inline
+: LVM_REMOVEALLGROUPS ( -- n ) LVM_FIRST  160  + ; inline
+: LVM_HASGROUP ( -- n ) LVM_FIRST  161  + ; inline
+: LVM_SETTILEVIEWINFO ( -- n ) LVM_FIRST  162  + ; inline
+: LVM_GETTILEVIEWINFO ( -- n ) LVM_FIRST  163  + ; inline
+: LVM_SETTILEINFO ( -- n ) LVM_FIRST  164  + ; inline
+: LVM_GETTILEINFO ( -- n ) LVM_FIRST  165  + ; inline
+: LVM_SETINSERTMARK ( -- n ) LVM_FIRST  166  + ; inline
+: LVM_GETINSERTMARK ( -- n ) LVM_FIRST  167  + ; inline
+: LVM_INSERTMARKHITTEST ( -- n ) LVM_FIRST  168  + ; inline
+: LVM_GETINSERTMARKRECT ( -- n ) LVM_FIRST  169  + ; inline
+: LVM_SETINSERTMARKCOLOR ( -- n ) LVM_FIRST  170  + ; inline
+: LVM_GETINSERTMARKCOLOR ( -- n ) LVM_FIRST  171  + ; inline
+: LVM_SETINFOTIP ( -- n ) LVM_FIRST  173  + ; inline
+: LVM_GETSELECTEDCOLUMN ( -- n ) LVM_FIRST  174  + ; inline
+: LVM_ISGROUPVIEWENABLED ( -- n ) LVM_FIRST  175  + ; inline
+: LVM_GETOUTLINECOLOR ( -- n ) LVM_FIRST  176  + ; inline
+: LVM_SETOUTLINECOLOR ( -- n ) LVM_FIRST  177  + ; inline
+: LVM_CANCELEDITLABEL ( -- n ) LVM_FIRST  179  + ; inline
+: LVM_MAPINDEXTOID ( -- n ) LVM_FIRST  180  + ; inline
+: LVM_MAPIDTOINDEX ( -- n ) LVM_FIRST  181  + ; inline
+: TVM_INSERTITEMA ( -- n ) TV_FIRST  0  + ; inline
+: TVM_INSERTITEMW ( -- n ) TV_FIRST  50  + ; inline
+: TVM_DELETEITEM ( -- n ) TV_FIRST  1  + ; inline
+: TVM_EXPAND ( -- n ) TV_FIRST  2  + ; inline
+: TVM_GETITEMRECT ( -- n ) TV_FIRST  4  + ; inline
+: TVM_GETCOUNT ( -- n ) TV_FIRST  5  + ; inline
+: TVM_GETINDENT ( -- n ) TV_FIRST  6  + ; inline
+: TVM_SETINDENT ( -- n ) TV_FIRST  7  + ; inline
+: TVM_GETIMAGELIST ( -- n ) TV_FIRST  8  + ; inline
+: TVM_SETIMAGELIST ( -- n ) TV_FIRST  9  + ; inline
+: TVM_GETNEXTITEM ( -- n ) TV_FIRST  10  + ; inline
+: TVM_SELECTITEM ( -- n ) TV_FIRST  11  + ; inline
+: TVM_GETITEMA ( -- n ) TV_FIRST  12  + ; inline
+: TVM_GETITEMW ( -- n ) TV_FIRST  62  + ; inline
+: TVM_SETITEMA ( -- n ) TV_FIRST  13  + ; inline
+: TVM_SETITEMW ( -- n ) TV_FIRST  63  + ; inline
+: TVM_EDITLABELA ( -- n ) TV_FIRST  14  + ; inline
+: TVM_EDITLABELW ( -- n ) TV_FIRST  65  + ; inline
+: TVM_GETEDITCONTROL ( -- n ) TV_FIRST  15  + ; inline
+: TVM_GETVISIBLECOUNT ( -- n ) TV_FIRST  16  + ; inline
+: TVM_HITTEST ( -- n ) TV_FIRST  17  + ; inline
+: TVM_CREATEDRAGIMAGE ( -- n ) TV_FIRST  18  + ; inline
+: TVM_SORTCHILDREN ( -- n ) TV_FIRST  19  + ; inline
+: TVM_ENSUREVISIBLE ( -- n ) TV_FIRST  20  + ; inline
+: TVM_SORTCHILDRENCB ( -- n ) TV_FIRST  21  + ; inline
+: TVM_ENDEDITLABELNOW ( -- n ) TV_FIRST  22  + ; inline
+: TVM_GETISEARCHSTRINGA ( -- n ) TV_FIRST  23  + ; inline
+: TVM_GETISEARCHSTRINGW ( -- n ) TV_FIRST  64  + ; inline
+: TVM_SETTOOLTIPS ( -- n ) TV_FIRST  24  + ; inline
+: TVM_GETTOOLTIPS ( -- n ) TV_FIRST  25  + ; inline
+: TVM_SETINSERTMARK ( -- n ) TV_FIRST  26  + ; inline
+ALIAS: TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: TVM_SETITEMHEIGHT ( -- n ) TV_FIRST  27  + ; inline
+: TVM_GETITEMHEIGHT ( -- n ) TV_FIRST  28  + ; inline
+: TVM_SETBKCOLOR ( -- n ) TV_FIRST  29  + ; inline
+: TVM_SETTEXTCOLOR ( -- n ) TV_FIRST  30  + ; inline
+: TVM_GETBKCOLOR ( -- n ) TV_FIRST  31  + ; inline
+: TVM_GETTEXTCOLOR ( -- n ) TV_FIRST  32  + ; inline
+: TVM_SETSCROLLTIME ( -- n ) TV_FIRST  33  + ; inline
+: TVM_GETSCROLLTIME ( -- n ) TV_FIRST  34  + ; inline
+: TVM_SETINSERTMARKCOLOR ( -- n ) TV_FIRST  37  + ; inline
+: TVM_GETINSERTMARKCOLOR ( -- n ) TV_FIRST  38  + ; inline
+: TVM_GETITEMSTATE ( -- n ) TV_FIRST  39  + ; inline
+: TVM_SETLINECOLOR ( -- n ) TV_FIRST  40  + ; inline
+: TVM_GETLINECOLOR ( -- n ) TV_FIRST  41  + ; inline
+: TVM_MAPACCIDTOHTREEITEM ( -- n ) TV_FIRST  42  + ; inline
+: TVM_MAPHTREEITEMTOACCID ( -- n ) TV_FIRST  43  + ; inline
+: CBEM_INSERTITEMA ( -- n ) WM_USER  1  + ; inline
+: CBEM_SETIMAGELIST ( -- n ) WM_USER  2  + ; inline
+: CBEM_GETIMAGELIST ( -- n ) WM_USER  3  + ; inline
+: CBEM_GETITEMA ( -- n ) WM_USER  4  + ; inline
+: CBEM_SETITEMA ( -- n ) WM_USER  5  + ; inline
+ALIAS: CBEM_DELETEITEM CB_DELETESTRING
+: CBEM_GETCOMBOCONTROL ( -- n ) WM_USER  6  + ; inline
+: CBEM_GETEDITCONTROL ( -- n ) WM_USER  7  + ; inline
+: CBEM_SETEXTENDEDSTYLE ( -- n ) WM_USER  14  + ; inline
+: CBEM_GETEXTENDEDSTYLE ( -- n ) WM_USER  9  + ; inline
+ALIAS: CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: CBEM_SETEXSTYLE ( -- n ) WM_USER  8  + ; inline
+: CBEM_GETEXSTYLE ( -- n ) WM_USER  9  + ; inline
+: CBEM_HASEDITCHANGED ( -- n ) WM_USER  10  + ; inline
+: CBEM_INSERTITEMW ( -- n ) WM_USER  11  + ; inline
+: CBEM_SETITEMW ( -- n ) WM_USER  12  + ; inline
+: CBEM_GETITEMW ( -- n ) WM_USER  13  + ; inline
+: TCM_GETIMAGELIST ( -- n ) TCM_FIRST  2  + ; inline
+: TCM_SETIMAGELIST ( -- n ) TCM_FIRST  3  + ; inline
+: TCM_GETITEMCOUNT ( -- n ) TCM_FIRST  4  + ; inline
+: TCM_GETITEMA ( -- n ) TCM_FIRST  5  + ; inline
+: TCM_GETITEMW ( -- n ) TCM_FIRST  60  + ; inline
+: TCM_SETITEMA ( -- n ) TCM_FIRST  6  + ; inline
+: TCM_SETITEMW ( -- n ) TCM_FIRST  61  + ; inline
+: TCM_INSERTITEMA ( -- n ) TCM_FIRST  7  + ; inline
+: TCM_INSERTITEMW ( -- n ) TCM_FIRST  62  + ; inline
+: TCM_DELETEITEM ( -- n ) TCM_FIRST  8  + ; inline
+: TCM_DELETEALLITEMS ( -- n ) TCM_FIRST  9  + ; inline
+: TCM_GETITEMRECT ( -- n ) TCM_FIRST  10  + ; inline
+: TCM_GETCURSEL ( -- n ) TCM_FIRST  11  + ; inline
+: TCM_SETCURSEL ( -- n ) TCM_FIRST  12  + ; inline
+: TCM_HITTEST ( -- n ) TCM_FIRST  13  + ; inline
+: TCM_SETITEMEXTRA ( -- n ) TCM_FIRST  14  + ; inline
+: TCM_ADJUSTRECT ( -- n ) TCM_FIRST  40  + ; inline
+: TCM_SETITEMSIZE ( -- n ) TCM_FIRST  41  + ; inline
+: TCM_REMOVEIMAGE ( -- n ) TCM_FIRST  42  + ; inline
+: TCM_SETPADDING ( -- n ) TCM_FIRST  43  + ; inline
+: TCM_GETROWCOUNT ( -- n ) TCM_FIRST  44  + ; inline
+: TCM_GETTOOLTIPS ( -- n ) TCM_FIRST  45  + ; inline
+: TCM_SETTOOLTIPS ( -- n ) TCM_FIRST  46  + ; inline
+: TCM_GETCURFOCUS ( -- n ) TCM_FIRST  47  + ; inline
+: TCM_SETCURFOCUS ( -- n ) TCM_FIRST  48  + ; inline
+: TCM_SETMINTABWIDTH ( -- n ) TCM_FIRST  49  + ; inline
+: TCM_DESELECTALL ( -- n ) TCM_FIRST  50  + ; inline
+: TCM_HIGHLIGHTITEM ( -- n ) TCM_FIRST  51  + ; inline
+: TCM_SETEXTENDEDSTYLE ( -- n ) TCM_FIRST  52  + ; inline
+: TCM_GETEXTENDEDSTYLE ( -- n ) TCM_FIRST  53  + ; inline
+ALIAS: TCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: TCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+: ACM_OPENA ( -- n ) WM_USER 100  + ; inline
+: ACM_OPENW ( -- n ) WM_USER 103  + ; inline
+: ACM_PLAY ( -- n ) WM_USER 101  + ; inline
+: ACM_STOP ( -- n ) WM_USER 102  + ; inline
+CONSTANT: MCM_FIRST HEX: 1000
+: MCM_GETCURSEL ( -- n ) MCM_FIRST  1  + ; inline
+: MCM_SETCURSEL ( -- n ) MCM_FIRST  2  + ; inline
+: MCM_GETMAXSELCOUNT ( -- n ) MCM_FIRST  3  + ; inline
+: MCM_SETMAXSELCOUNT ( -- n ) MCM_FIRST  4  + ; inline
+: MCM_GETSELRANGE ( -- n ) MCM_FIRST  5  + ; inline
+: MCM_SETSELRANGE ( -- n ) MCM_FIRST  6  + ; inline
+: MCM_GETMONTHRANGE ( -- n ) MCM_FIRST  7  + ; inline
+: MCM_SETDAYSTATE ( -- n ) MCM_FIRST  8  + ; inline
+: MCM_GETMINREQRECT ( -- n ) MCM_FIRST  9  + ; inline
+: MCM_SETCOLOR ( -- n ) MCM_FIRST  10  + ; inline
+: MCM_GETCOLOR ( -- n ) MCM_FIRST  11  + ; inline
+: MCM_SETTODAY ( -- n ) MCM_FIRST  12  + ; inline
+: MCM_GETTODAY ( -- n ) MCM_FIRST  13  + ; inline
+: MCM_HITTEST ( -- n ) MCM_FIRST  14  + ; inline
+: MCM_SETFIRSTDAYOFWEEK ( -- n ) MCM_FIRST  15  + ; inline
+: MCM_GETFIRSTDAYOFWEEK ( -- n ) MCM_FIRST  16  + ; inline
+: MCM_GETRANGE ( -- n ) MCM_FIRST  17  + ; inline
+: MCM_SETRANGE ( -- n ) MCM_FIRST  18  + ; inline
+: MCM_GETMONTHDELTA ( -- n ) MCM_FIRST  19  + ; inline
+: MCM_SETMONTHDELTA ( -- n ) MCM_FIRST  20  + ; inline
+: MCM_GETMAXTODAYWIDTH ( -- n ) MCM_FIRST  21  + ; inline
+ALIAS: MCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+ALIAS: MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+CONSTANT: DTM_FIRST HEX: 1000
+: DTM_GETSYSTEMTIME ( -- n ) DTM_FIRST  1  + ; inline
+: DTM_SETSYSTEMTIME ( -- n ) DTM_FIRST  2  + ; inline
+: DTM_GETRANGE ( -- n ) DTM_FIRST  3  + ; inline
+: DTM_SETRANGE ( -- n ) DTM_FIRST  4  + ; inline
+: DTM_SETFORMATA ( -- n ) DTM_FIRST  5  + ; inline
+: DTM_SETFORMATW ( -- n ) DTM_FIRST  50  + ; inline
+: DTM_SETMCCOLOR ( -- n ) DTM_FIRST  6  + ; inline
+: DTM_GETMCCOLOR ( -- n ) DTM_FIRST  7  + ; inline
+: DTM_GETMONTHCAL ( -- n ) DTM_FIRST  8  + ; inline
+: DTM_SETMCFONT ( -- n ) DTM_FIRST  9  + ; inline
+: DTM_GETMCFONT ( -- n ) DTM_FIRST  10  + ; inline
+: PGM_SETCHILD ( -- n ) PGM_FIRST  1  + ; inline
+: PGM_RECALCSIZE ( -- n ) PGM_FIRST  2  + ; inline
+: PGM_FORWARDMOUSE ( -- n ) PGM_FIRST  3  + ; inline
+: PGM_SETBKCOLOR ( -- n ) PGM_FIRST  4  + ; inline
+: PGM_GETBKCOLOR ( -- n ) PGM_FIRST  5  + ; inline
+: PGM_SETBORDER ( -- n ) PGM_FIRST  6  + ; inline
+: PGM_GETBORDER ( -- n ) PGM_FIRST  7  + ; inline
+: PGM_SETPOS ( -- n ) PGM_FIRST  8  + ; inline
+: PGM_GETPOS ( -- n ) PGM_FIRST  9  + ; inline
+: PGM_SETBUTTONSIZE ( -- n ) PGM_FIRST  10  + ; inline
+: PGM_GETBUTTONSIZE ( -- n ) PGM_FIRST  11  + ; inline
+: PGM_GETBUTTONSTATE ( -- n ) PGM_FIRST  12  + ; inline
+CONSTANT: PGM_GETDROPTARGET CCM_GETDROPTARGET
+: BCM_GETIDEALSIZE ( -- n ) BCM_FIRST  1  + ; inline
+: BCM_SETIMAGELIST ( -- n ) BCM_FIRST  2  + ; inline
+: BCM_GETIMAGELIST ( -- n ) BCM_FIRST  3  + ; inline
+: BCM_SETTEXTMARGIN ( -- n ) BCM_FIRST 4  + ; inline
+: BCM_GETTEXTMARGIN ( -- n ) BCM_FIRST 5  + ; inline
+: EM_SETCUEBANNER ( -- n ) ECM_FIRST  1 +  ; inline
+: EM_GETCUEBANNER ( -- n ) ECM_FIRST  2 +  ; inline
+: EM_SHOWBALLOONTIP ( -- n ) ECM_FIRST  3  + ; inline
+: EM_HIDEBALLOONTIP ( -- n ) ECM_FIRST  4  + ; inline
+: CB_SETMINVISIBLE ( -- n ) CBM_FIRST  1  + ; inline
+: CB_GETMINVISIBLE ( -- n ) CBM_FIRST  2  + ; inline
+: LM_HITTEST ( -- n ) WM_USER  HEX: 0300  + ; inline
+: LM_GETIDEALHEIGHT ( -- n ) WM_USER  HEX: 0301  + ; inline
+: LM_SETITEM ( -- n ) WM_USER  HEX: 0302  + ; inline
+: LM_GETITEM ( -- n ) WM_USER  HEX: 0303  + ; inline
 
 
-: WA_INACTIVE 0 ; inline
-: WA_ACTIVE 1 ; inline
-: WA_CLICKACTIVE 2 ; inline
 
-: SC_SIZE         HEX: f000 ; inline
-: SC_MOVE         HEX: f010 ; inline
-: SC_MINIMIZE     HEX: f020 ; inline
-: SC_MAXIMIZE     HEX: f030 ; inline
-: SC_NEXTWINDOW   HEX: f040 ; inline
-: SC_PREVWINDOW   HEX: f050 ; inline
-: SC_CLOSE        HEX: f060 ; inline
-: SC_VSCROLL      HEX: f070 ; inline
-: SC_HSCROLL      HEX: f080 ; inline
-: SC_MOUSEMENU    HEX: f090 ; inline
-: SC_KEYMENU      HEX: f100 ; inline
-: SC_ARRANGE      HEX: f110 ; inline
-: SC_RESTORE      HEX: f120 ; inline
-: SC_TASKLIST     HEX: f130 ; inline
-: SC_SCREENSAVE   HEX: f140 ; inline
-: SC_HOTKEY       HEX: f150 ; inline
+CONSTANT: WA_INACTIVE 0
+CONSTANT: WA_ACTIVE 1
+CONSTANT: WA_CLICKACTIVE 2
+
+CONSTANT: SC_SIZE         HEX: f000
+CONSTANT: SC_MOVE         HEX: f010
+CONSTANT: SC_MINIMIZE     HEX: f020
+CONSTANT: SC_MAXIMIZE     HEX: f030
+CONSTANT: SC_NEXTWINDOW   HEX: f040
+CONSTANT: SC_PREVWINDOW   HEX: f050
+CONSTANT: SC_CLOSE        HEX: f060
+CONSTANT: SC_VSCROLL      HEX: f070
+CONSTANT: SC_HSCROLL      HEX: f080
+CONSTANT: SC_MOUSEMENU    HEX: f090
+CONSTANT: SC_KEYMENU      HEX: f100
+CONSTANT: SC_ARRANGE      HEX: f110
+CONSTANT: SC_RESTORE      HEX: f120
+CONSTANT: SC_TASKLIST     HEX: f130
+CONSTANT: SC_SCREENSAVE   HEX: f140
+CONSTANT: SC_HOTKEY       HEX: f150
index 6d4e60ab22ff80d69a1ba0acd5603fc6a9250fce..05a306640d7a3bccfc1b1a9f9181c6dc8750f349 100755 (executable)
@@ -131,7 +131,7 @@ M: ole32-error error.
 : guid= ( a b -- ? )
     [ 16 memory>byte-array ] bi@ = ;
 
-: GUID-STRING-LENGTH
+: GUID-STRING-LENGTH ( -- n )
     "{01234567-89ab-cdef-0123-456789abcdef}" length ; inline
 
 :: (guid-section>guid) ( string guid start end quot -- )
index 13d71f1ff317f3d384ee263a664f3fe7294d64da..1282d3b9a5311d804dafdb302a5a1d2f39da4d26 100644 (file)
@@ -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
-
-
-: ERROR_FILE_NOT_FOUND 2 ; inline
-
-: SHGFP_TYPE_CURRENT 0 ; inline
-: SHGFP_TYPE_DEFAULT 1 ; 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
+
+
+CONSTANT: ERROR_FILE_NOT_FOUND 2
+
+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
index e5c9f962751061fd1c130df58da72442804da47b..88c6d54f0a9e0e1e16f09c9cc4111369443678e3 100644 (file)
@@ -1,35 +1,35 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.syntax parser namespaces kernel math
-windows.types generalizations math.bitwise alias ;
+windows.types generalizations math.bitwise alias constants ;
 IN: windows.user32
 
 ! HKL for ActivateKeyboardLayout
-: HKL_PREV 0 ; inline
-: HKL_NEXT 1 ; inline
-
-: CW_USEDEFAULT HEX: 80000000 ; inline
-
-: WS_OVERLAPPED       HEX: 00000000 ; inline
-: WS_POPUP            HEX: 80000000 ; inline
-: WS_CHILD            HEX: 40000000 ; inline
-: WS_MINIMIZE         HEX: 20000000 ; inline
-: WS_VISIBLE          HEX: 10000000 ; inline
-: WS_DISABLED         HEX: 08000000 ; inline
-: WS_CLIPSIBLINGS     HEX: 04000000 ; inline
-: WS_CLIPCHILDREN     HEX: 02000000 ; inline
-: WS_MAXIMIZE         HEX: 01000000 ; inline
-: WS_CAPTION          HEX: 00C00000 ; inline
-: WS_BORDER           HEX: 00800000 ; inline
-: WS_DLGFRAME         HEX: 00400000 ; inline
-: WS_VSCROLL          HEX: 00200000 ; inline
-: WS_HSCROLL          HEX: 00100000 ; inline
-: WS_SYSMENU          HEX: 00080000 ; inline
-: WS_THICKFRAME       HEX: 00040000 ; inline
-: WS_GROUP            HEX: 00020000 ; inline
-: WS_TABSTOP          HEX: 00010000 ; inline
-: WS_MINIMIZEBOX      HEX: 00020000 ; inline
-: WS_MAXIMIZEBOX      HEX: 00010000 ; inline
+CONSTANT: HKL_PREV 0
+CONSTANT: HKL_NEXT 1
+
+CONSTANT: CW_USEDEFAULT HEX: 80000000
+
+CONSTANT: WS_OVERLAPPED       HEX: 00000000
+CONSTANT: WS_POPUP            HEX: 80000000
+CONSTANT: WS_CHILD            HEX: 40000000
+CONSTANT: WS_MINIMIZE         HEX: 20000000
+CONSTANT: WS_VISIBLE          HEX: 10000000
+CONSTANT: WS_DISABLED         HEX: 08000000
+CONSTANT: WS_CLIPSIBLINGS     HEX: 04000000
+CONSTANT: WS_CLIPCHILDREN     HEX: 02000000
+CONSTANT: WS_MAXIMIZE         HEX: 01000000
+CONSTANT: WS_CAPTION          HEX: 00C00000
+CONSTANT: WS_BORDER           HEX: 00800000
+CONSTANT: WS_DLGFRAME         HEX: 00400000
+CONSTANT: WS_VSCROLL          HEX: 00200000
+CONSTANT: WS_HSCROLL          HEX: 00100000
+CONSTANT: WS_SYSMENU          HEX: 00080000
+CONSTANT: WS_THICKFRAME       HEX: 00040000
+CONSTANT: WS_GROUP            HEX: 00020000
+CONSTANT: WS_TABSTOP          HEX: 00010000
+CONSTANT: WS_MINIMIZEBOX      HEX: 00020000
+CONSTANT: WS_MAXIMIZEBOX      HEX: 00010000
 
 ! Common window styles
 : WS_OVERLAPPEDWINDOW ( -- n )
@@ -45,102 +45,102 @@ IN: windows.user32
 : WS_POPUPWINDOW ( -- n )
     { WS_POPUP WS_BORDER WS_SYSMENU } flags ; foldable
 
-: WS_CHILDWINDOW      WS_CHILD ; inline
+ALIAS: WS_CHILDWINDOW      WS_CHILD
 
-: WS_TILED            WS_OVERLAPPED ; inline
-: WS_ICONIC           WS_MINIMIZE ; inline
-: WS_SIZEBOX          WS_THICKFRAME ; inline
-: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ; inline
+ALIAS: WS_TILED            WS_OVERLAPPED
+ALIAS: WS_ICONIC           WS_MINIMIZE
+ALIAS: WS_SIZEBOX          WS_THICKFRAME
+ALIAS: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
 
 ! Extended window styles
 
-: WS_EX_DLGMODALFRAME     HEX: 00000001 ; inline
-: WS_EX_NOPARENTNOTIFY    HEX: 00000004 ; inline
-: WS_EX_TOPMOST           HEX: 00000008 ; inline
-: WS_EX_ACCEPTFILES       HEX: 00000010 ; inline
-: WS_EX_TRANSPARENT       HEX: 00000020 ; inline
-: WS_EX_MDICHILD          HEX: 00000040 ; inline
-: WS_EX_TOOLWINDOW        HEX: 00000080 ; inline
-: WS_EX_WINDOWEDGE        HEX: 00000100 ; inline
-: WS_EX_CLIENTEDGE        HEX: 00000200 ; inline
-: WS_EX_CONTEXTHELP       HEX: 00000400 ; inline
-
-: WS_EX_RIGHT             HEX: 00001000 ; inline
-: WS_EX_LEFT              HEX: 00000000 ; inline
-: WS_EX_RTLREADING        HEX: 00002000 ; inline
-: WS_EX_LTRREADING        HEX: 00000000 ; inline
-: WS_EX_LEFTSCROLLBAR     HEX: 00004000 ; inline
-: WS_EX_RIGHTSCROLLBAR    HEX: 00000000 ; inline
-: WS_EX_CONTROLPARENT     HEX: 00010000 ; inline
-: WS_EX_STATICEDGE        HEX: 00020000 ; inline
-: WS_EX_APPWINDOW         HEX: 00040000 ; inline
+CONSTANT: WS_EX_DLGMODALFRAME     HEX: 00000001
+CONSTANT: WS_EX_NOPARENTNOTIFY    HEX: 00000004
+CONSTANT: WS_EX_TOPMOST           HEX: 00000008
+CONSTANT: WS_EX_ACCEPTFILES       HEX: 00000010
+CONSTANT: WS_EX_TRANSPARENT       HEX: 00000020
+CONSTANT: WS_EX_MDICHILD          HEX: 00000040
+CONSTANT: WS_EX_TOOLWINDOW        HEX: 00000080
+CONSTANT: WS_EX_WINDOWEDGE        HEX: 00000100
+CONSTANT: WS_EX_CLIENTEDGE        HEX: 00000200
+CONSTANT: WS_EX_CONTEXTHELP       HEX: 00000400
+
+CONSTANT: WS_EX_RIGHT             HEX: 00001000
+CONSTANT: WS_EX_LEFT              HEX: 00000000
+CONSTANT: WS_EX_RTLREADING        HEX: 00002000
+CONSTANT: WS_EX_LTRREADING        HEX: 00000000
+CONSTANT: WS_EX_LEFTSCROLLBAR     HEX: 00004000
+CONSTANT: WS_EX_RIGHTSCROLLBAR    HEX: 00000000
+CONSTANT: WS_EX_CONTROLPARENT     HEX: 00010000
+CONSTANT: WS_EX_STATICEDGE        HEX: 00020000
+CONSTANT: WS_EX_APPWINDOW         HEX: 00040000
 : WS_EX_OVERLAPPEDWINDOW ( -- n )
     WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; foldable
 : WS_EX_PALETTEWINDOW ( -- n )
     { WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW WS_EX_TOPMOST } flags ; foldable
 
-: CS_VREDRAW          HEX: 0001 ; inline
-: CS_HREDRAW          HEX: 0002 ; inline
-: CS_DBLCLKS          HEX: 0008 ; inline
-: CS_OWNDC            HEX: 0020 ; inline
-: CS_CLASSDC          HEX: 0040 ; inline
-: CS_PARENTDC         HEX: 0080 ; inline
-: CS_NOCLOSE          HEX: 0200 ; inline
-: CS_SAVEBITS         HEX: 0800 ; inline
-: CS_BYTEALIGNCLIENT  HEX: 1000 ; inline
-: CS_BYTEALIGNWINDOW  HEX: 2000 ; inline
-: CS_GLOBALCLASS      HEX: 4000 ; inline
-
-: COLOR_SCROLLBAR         0 ; inline
-: COLOR_BACKGROUND        1 ; inline
-: COLOR_ACTIVECAPTION     2 ; inline
-: COLOR_INACTIVECAPTION   3 ; inline
-: COLOR_MENU              4 ; inline
-: COLOR_WINDOW            5 ; inline
-: COLOR_WINDOWFRAME       6 ; inline
-: COLOR_MENUTEXT          7 ; inline
-: COLOR_WINDOWTEXT        8 ; inline
-: COLOR_CAPTIONTEXT       9 ; inline
-: COLOR_ACTIVEBORDER      10 ; inline
-: COLOR_INACTIVEBORDER    11 ; inline
-: COLOR_APPWORKSPACE      12 ; inline
-: COLOR_HIGHLIGHT         13 ; inline
-: COLOR_HIGHLIGHTTEXT     14 ; inline
-: COLOR_BTNFACE           15 ; inline
-: COLOR_BTNSHADOW         16 ; inline
-: COLOR_GRAYTEXT          17 ; inline
-: COLOR_BTNTEXT           18 ; inline
-: COLOR_INACTIVECAPTIONTEXT 19 ; inline
-: COLOR_BTNHIGHLIGHT      20 ; inline
-
-: IDI_APPLICATION     32512 ; inline
-: IDI_HAND            32513 ; inline
-: IDI_QUESTION        32514 ; inline
-: IDI_EXCLAMATION     32515 ; inline
-: IDI_ASTERISK        32516 ; inline
-: IDI_WINLOGO         32517 ; inline
+CONSTANT: CS_VREDRAW          HEX: 0001
+CONSTANT: CS_HREDRAW          HEX: 0002
+CONSTANT: CS_DBLCLKS          HEX: 0008
+CONSTANT: CS_OWNDC            HEX: 0020
+CONSTANT: CS_CLASSDC          HEX: 0040
+CONSTANT: CS_PARENTDC         HEX: 0080
+CONSTANT: CS_NOCLOSE          HEX: 0200
+CONSTANT: CS_SAVEBITS         HEX: 0800
+CONSTANT: CS_BYTEALIGNCLIENT  HEX: 1000
+CONSTANT: CS_BYTEALIGNWINDOW  HEX: 2000
+CONSTANT: CS_GLOBALCLASS      HEX: 4000
+
+CONSTANT: COLOR_SCROLLBAR         0
+CONSTANT: COLOR_BACKGROUND        1
+CONSTANT: COLOR_ACTIVECAPTION     2
+CONSTANT: COLOR_INACTIVECAPTION   3
+CONSTANT: COLOR_MENU              4
+CONSTANT: COLOR_WINDOW            5
+CONSTANT: COLOR_WINDOWFRAME       6
+CONSTANT: COLOR_MENUTEXT          7
+CONSTANT: COLOR_WINDOWTEXT        8
+CONSTANT: COLOR_CAPTIONTEXT       9
+CONSTANT: COLOR_ACTIVEBORDER      10
+CONSTANT: COLOR_INACTIVEBORDER    11
+CONSTANT: COLOR_APPWORKSPACE      12
+CONSTANT: COLOR_HIGHLIGHT         13
+CONSTANT: COLOR_HIGHLIGHTTEXT     14
+CONSTANT: COLOR_BTNFACE           15
+CONSTANT: COLOR_BTNSHADOW         16
+CONSTANT: COLOR_GRAYTEXT          17
+CONSTANT: COLOR_BTNTEXT           18
+CONSTANT: COLOR_INACTIVECAPTIONTEXT 19
+CONSTANT: COLOR_BTNHIGHLIGHT      20
+
+CONSTANT: IDI_APPLICATION     32512
+CONSTANT: IDI_HAND            32513
+CONSTANT: IDI_QUESTION        32514
+CONSTANT: IDI_EXCLAMATION     32515
+CONSTANT: IDI_ASTERISK        32516
+CONSTANT: IDI_WINLOGO         32517
 
 ! ShowWindow() Commands
-: SW_HIDE             0 ; inline
-: SW_SHOWNORMAL       1 ; inline
-: SW_NORMAL           1 ; inline
-: SW_SHOWMINIMIZED    2 ; inline
-: SW_SHOWMAXIMIZED    3 ; inline
-: SW_MAXIMIZE         3 ; inline
-: SW_SHOWNOACTIVATE   4 ; inline
-: SW_SHOW             5 ; inline
-: SW_MINIMIZE         6 ; inline
-: SW_SHOWMINNOACTIVE  7 ; inline
-: SW_SHOWNA           8 ; inline
-: SW_RESTORE          9 ; inline
-: SW_SHOWDEFAULT      10 ; inline
-: SW_FORCEMINIMIZE    11 ; inline
-: SW_MAX              11 ; inline
+CONSTANT: SW_HIDE             0
+CONSTANT: SW_SHOWNORMAL       1
+CONSTANT: SW_NORMAL           1
+CONSTANT: SW_SHOWMINIMIZED    2
+CONSTANT: SW_SHOWMAXIMIZED    3
+CONSTANT: SW_MAXIMIZE         3
+CONSTANT: SW_SHOWNOACTIVATE   4
+CONSTANT: SW_SHOW             5
+CONSTANT: SW_MINIMIZE         6
+CONSTANT: SW_SHOWMINNOACTIVE  7
+CONSTANT: SW_SHOWNA           8
+CONSTANT: SW_RESTORE          9
+CONSTANT: SW_SHOWDEFAULT      10
+CONSTANT: SW_FORCEMINIMIZE    11
+CONSTANT: SW_MAX              11
 
 ! PeekMessage
-: PM_NOREMOVE   0 ; inline
-: PM_REMOVE     1 ; inline
-: PM_NOYIELD    2 ; inline
+CONSTANT: PM_NOREMOVE   0
+CONSTANT: PM_REMOVE     1
+CONSTANT: PM_NOYIELD    2
 ! : PM_QS_INPUT         (QS_INPUT << 16) ;
 ! : PM_QS_POSTMESSAGE   ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ;
 ! : PM_QS_PAINT         (QS_PAINT << 16) ;
@@ -503,7 +503,7 @@ IN: windows.user32
 : MB_ICONQUESTION    HEX: 00000020 ; inline
 : MB_OK              HEX: 00000000 ; inline
 
-: FVIRTKEY TRUE ; inline
+ALIAS: FVIRTKEY TRUE
 : FNOINVERT 2 ; inline
 : FSHIFT 4 ; inline
 : FCONTROL 8 ; inline
@@ -670,7 +670,7 @@ FUNCTION: HWND CreateWindowExW (
 
 ALIAS: CreateWindowEx CreateWindowExW
 
-: CreateWindow 0 12 -nrot CreateWindowEx ; inline
+: CreateWindow ( a b c d e f g h i j k -- hwnd ) 0 12 -nrot CreateWindowEx ; inline
 
 
 ! FUNCTION: CreateWindowStationA
@@ -1265,7 +1265,7 @@ FUNCTION: BOOL SetForegroundWindow ( HWND hWnd ) ;
 ! FUNCTION: SetKeyboardState
 ! type is ignored
 FUNCTION: void SetLastErrorEx ( DWORD dwErrCode, DWORD dwType ) ; 
-: SetLastError 0 SetLastErrorEx ; inline
+: SetLastError ( errcode -- ) 0 SetLastErrorEx ; inline
 ! FUNCTION: SetLayeredWindowAttributes
 ! FUNCTION: SetLogonNotifyWindow
 ! FUNCTION: SetMenu
index 5d450897e22120d14379ba442a478314f0c11954..3ee333d05d1b109258ec6eabd031ca13acdf0bd9 100644 (file)
@@ -2,7 +2,8 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.c-types alien.strings alien.syntax arrays
 byte-arrays kernel math sequences windows.types windows.kernel32
-windows.errors windows math.bitwise alias io.encodings.utf16n ;
+windows.errors windows math.bitwise alias io.encodings.utf16n
+alias constants ;
 IN: windows.winsock
 
 USE: libc
@@ -29,7 +30,7 @@ TYPEDEF: void* SOCKET
 : SO_USELOOPBACK HEX:  40 ; inline
 : SO_LINGER      HEX:  80 ; inline
 : SO_OOBINLINE   HEX: 100 ; inline
-: SO_DONTLINGER SO_LINGER bitnot ; inline
+: SO_DONTLINGER ( -- n ) SO_LINGER bitnot ; inline
 
 : SO_SNDBUF     HEX: 1001 ; inline
 : SO_RCVBUF     HEX: 1002 ; inline
@@ -50,7 +51,7 @@ TYPEDEF: void* SOCKET
 : AF_CHAOS       5 ; inline
 : AF_NS          6 ; inline
 : AF_ISO         7 ; inline
-: AF_OSI    AF_ISO ; inline
+ALIAS: AF_OSI    AF_ISO
 : AF_ECMA        8 ; inline
 : AF_DATAKIT     9 ; inline
 : AF_CCITT      10 ; inline
@@ -83,19 +84,19 @@ TYPEDEF: void* SOCKET
 : IPPROTO_UDP   17 ; inline
 : IPPROTO_RM   113 ; inline
 
-: WSA_FLAG_OVERLAPPED 1 ; inline
-: WSA_WAIT_EVENT_0 WAIT_OBJECT_0 ; inline
-: WSA_MAXIMUM_WAIT_EVENTS MAXIMUM_WAIT_OBJECTS ; inline
-: WSA_INVALID_EVENT f ; inline
-: WSA_WAIT_FAILED -1 ; inline
-: WSA_WAIT_IO_COMPLETION WAIT_IO_COMPLETION ; inline
-: WSA_WAIT_TIMEOUT WAIT_TIMEOUT ; inline
-: WSA_INFINITE INFINITE ; inline
-: WSA_IO_PENDING ERROR_IO_PENDING ; inline
+CONSTANT: WSA_FLAG_OVERLAPPED 1
+ALIAS: WSA_WAIT_EVENT_0 WAIT_OBJECT_0
+ALIAS: WSA_MAXIMUM_WAIT_EVENTS MAXIMUM_WAIT_OBJECTS
+CONSTANT: WSA_INVALID_EVENT f
+CONSTANT: WSA_WAIT_FAILED -1
+ALIAS: WSA_WAIT_IO_COMPLETION WAIT_IO_COMPLETION
+ALIAS: WSA_WAIT_TIMEOUT WAIT_TIMEOUT
+ALIAS: WSA_INFINITE INFINITE
+ALIAS: WSA_IO_PENDING ERROR_IO_PENDING
 
 : INADDR_ANY 0 ; inline
 
-: INVALID_SOCKET -1 <alien> ; inline
+: INVALID_SOCKET ( -- alien ) -1 <alien> ; inline
 : SOCKET_ERROR -1 ; inline
 
 : SD_RECV 0 ; inline
index 1612b7ec11da72a8bd3629b3f294efec77328100..472488ddc2bd26e728d211eed599c5f35beabe78 100644 (file)
@@ -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 ;
 
index 0a389c8034493197fc90037591847e9038e3579e..07650a9da73125655928c472eb9fb9ca669cc6ad 100644 (file)
@@ -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 ;
index 3c41a7858411f7118c782567501cec67fca1a3c5..67ece9d1c7ec82c2e22b3bc8586a2526f9b67262 100644 (file)
@@ -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>
-    [ XVisualInfo-depth InputOutput ] keep
-    [ XVisualInfo-visual create-window-mask ] keep
-    window-attributes XCreateWindow
-    dup r> auto-position ;
+    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
+    ] dip auto-position ;
 
 : glx-window ( loc dim -- window glx )
     GLX_DOUBLEBUFFER 1array choose-visual
index 1eee8307b1b7e70da8d03f81e3c02fec723bfc32..07872fe576d363282e87fa53500a5b4c1125b291 100644 (file)
@@ -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
-
-: *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>
+
+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
-
-: 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
+: 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   ( -- 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" ;
index 8c20df1fd02d93349777e43a43fb495638d55456..d812e8503b872814842581c884e17860bf64e0f6 100644 (file)
@@ -21,7 +21,7 @@ HELP: base64
 { $see-also <base64> } ;
 
 HELP: <rpc-method>
-{ $values { "name" "a string" } { "params" "a sequence" } }
+{ $values { "name" "a string" } { "params" "a sequence" } { "rpc-method" rpc-method } }
 { $description "creates a tuple reprsenting a method call which can be translated using send-rpc into an XML-RPC document" }
 { $see-also rpc-method <rpc-response> <rpc-fault> } ;
 
@@ -30,7 +30,7 @@ HELP: rpc-method
 { $see-also <rpc-method> rpc-response rpc-fault } ;
 
 HELP: <rpc-response>
-{ $values { "params" "a sequence" } }
+{ $values { "params" "a sequence" } { "rpc-response" rpc-response } }
 { $description "creates a tuple representing a data response in XML-RPC" }
 { $see-also rpc-response <rpc-method> <rpc-fault> } ;
 
@@ -39,7 +39,7 @@ HELP: rpc-response
 { $see-also <rpc-response> rpc-method rpc-fault } ;
 
 HELP: <rpc-fault>
-{ $values { "code" "an integer" } { "string" "a string" } }
+{ $values { "code" "an integer" } { "string" "a string" } { "rpc-fault" rpc-fault } }
 { $description "creates a tuple representing an exception in RPC, to be returned to the caller. The code is a number representing what type of error it is, and the string is a description" }
 { $see-also rpc-fault <rpc-method> <rpc-response> } ;
 
index 05dd85251dd032602a1e941285746459165c28ad..16a817d62846351f2b2a95807380cac03fa392c8 100644 (file)
@@ -112,8 +112,8 @@ 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)" }\r
 { $see-also <name> tag } ;\r
 \r
-HELP: <name> ( space tag url -- name )\r
-{ $values { "space" "a string" } { "tag" "a string" } { "url" "a string" }\r
+HELP: <name>\r
+{ $values { "space" "a string" } { "main" "a string" } { "url" "a string" }\r
     { "name" "an XML tag name" } }\r
 { $description "creates a name tuple with the name-space space and the tag-name tag and the tag-url url." }\r
 { $see-also name <tag> } ;\r
@@ -135,7 +135,7 @@ HELP: xml
 \r
 HELP: <xml>\r
 { $values { "prolog" "an XML prolog" } { "before" "a sequence of XML elements" }\r
-{ "main" tag } { "after" "a sequence of XML elements" } { "xml" "an XML document" } }\r
+{ "body" tag } { "after" "a sequence of XML elements" } { "xml" "an XML document" } }\r
 { $description "creates an XML document, delegating to the main tag, with the specified prolog, before, and after" }\r
 { $see-also xml <tag> } ;\r
 \r
@@ -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)" }\r
 { $see-also <prolog> xml } ;\r
 \r
-HELP: <prolog> ( version encoding standalone -- prolog )\r
+HELP: <prolog>\r
 { $values { "version" "a string, 1.0 or 1.1" }\r
 { "encoding" "a string" } { "standalone" "a boolean" } { "prolog" "an XML prolog" } }\r
 { $description "creates an XML prolog tuple" }\r
@@ -153,7 +153,7 @@ HELP: comment
 { $class-description "represents a comment in XML. Has one slot, text, which contains the string of the comment" }\r
 { $see-also <comment> } ;\r
 \r
-HELP: <comment> ( text -- comment )\r
+HELP: <comment>\r
 { $values { "text" "a string" } { "comment" "a comment" } }\r
 { $description "creates an XML comment tuple" }\r
 { $see-also comment } ;\r
@@ -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." }\r
 { $see-also <instruction> } ;\r
 \r
-HELP: <instruction> ( text -- instruction )\r
+HELP: <instruction>\r
 { $values { "text" "a string" } { "instruction" "an XML instruction" } }\r
 { $description "creates an XML parsing instruction, such as <?xsl stylesheet='foo.xml'?>." }\r
 { $see-also instruction } ;\r
index 23e4195158b05dc0d9e90fc647001de05e727ee5..69fc08742bebf7a3d6233264b5a184bdcc89e239 100644 (file)
@@ -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 ;
 
index 320e370ec980bad11cc5363e10104cdcc05d70e3..748300ef0f8d20e0020249fbcfe5116eecd64bbb 100644 (file)
@@ -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* [
index 6cc97531a4a790db5efb4eb24d289feaed8d37b6..b3c3cb88e4cefdc8a89644ebbdf759531dab8315 100644 (file)
@@ -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
index 7cff22de19bedd11402b1d1f6de7d504cce40b33..d373a96f39244c8d8881650849d76e7eacbb2c83 100644 (file)
@@ -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
index d9464399a94ee4a7a9253a501f7f80779ecbf304..3ee9b8e40b3a5e82b5a4d82ffd12b64d09bc033b 100644 (file)
@@ -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 [
index 363248216281cc009a825933b18bb82576dd9fb9..ea3470feb3419ea74873ebed2a3ab9d1b09d9c3f 100644 (file)
@@ -221,10 +221,6 @@ HELP: assert-depth
 { $values { "quot" "a quotation" } }
 { $description "Runs a quotation. Throws an error if the quotation attempts to take input values from the stack, or leave outputs on the stack." } ;
 
-HELP: <continuation>
-{ $description "Constructs a new continuation." }
-{ $notes "User code should call " { $link continuation } " instead." } ;
-
 HELP: attempt-all
 { $values
      { "seq" sequence } { "quot" quotation }
index 300bd44fb4abca12ae175cbba52b5fdfd9a2f9f5..9ace1a01f4f63efb02abf938fd43aa106f4f3fda 100644 (file)
@@ -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 ;
 
index 8663f25a7032ba919833130355f5ff6f77486bfc..9268340c792e4cf735b90f9765e1fbd97a58b3bc 100644 (file)
@@ -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
 
index d165ad3138cc7c5e939b25bcc53c7acac2915f8e..94d211547870bc76918336d5a5c48b1af54b5188 100644 (file)
@@ -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
index 8ef0de86b71d27fa6b1978170dc9ecb35c658b79..020911e61f5a07edf0ae49ec5fb378e2280d8209 100644 (file)
@@ -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
index a579153353a1032f60d917bbf6276a3450957b3b..41cc878c7977ba88be9c4fde352ecb7e3d3229d2 100644 (file)
@@ -20,13 +20,13 @@ ARTICLE: "io.streams.c" "ANSI C streams"
 
 ABOUT: "io.streams.c"
 
-HELP: <c-reader> ( in -- stream )
-{ $values { "in" "a C FILE* handle" } { "stream" "a new stream" } }
+HELP: <c-reader>
+{ $values { "handle" "a C FILE* handle" } { "stream" "a new stream" } }
 { $description "Creates a stream which reads data by calling C standard library functions." }
 { $notes "Usually C streams are only used during bootstrap, and non-blocking OS-specific I/O routines are used during normal operation." } ;
 
-HELP: <c-writer> ( out -- stream )
-{ $values { "out" "a C FILE* handle" } { "stream" "a new stream" } }
+HELP: <c-writer>
+{ $values { "handle" "a C FILE* handle" } { "stream" "a new stream" } }
 { $description "Creates a stream which writes data by calling C standard library functions." }
 { $notes "Usually C streams are only used during bootstrap, and non-blocking OS-specific I/O routines are used during normal operation." } ;
 
index 9522aa5a0bb37ee515bc48b61846a40ac53931c7..5a32ca2dced334b4bc4696dea7bd015daae4a2f8 100644 (file)
@@ -37,11 +37,11 @@ SYMBOL: type-numbers
 
 : cell-bits ( -- n ) 8 cells ; inline
 
-: bootstrap-cell \ cell get cell or ; inline
+: bootstrap-cell ( -- n ) \ cell get cell or ; inline
 
-: bootstrap-cells bootstrap-cell * ; inline
+: bootstrap-cells ( m -- n ) bootstrap-cell * ; inline
 
-: bootstrap-cell-bits 8 bootstrap-cells ; inline
+: bootstrap-cell-bits ( -- n ) 8 bootstrap-cells ; inline
 
 : first-bignum ( -- n )
     cell-bits (first-bignum) ; inline
index 3c2b7f67e2eecc618bdf01b3b77e5bc740f83fed..2f7ab751038c692c0dbd2d918fac0c5b92c7d5c7 100644 (file)
@@ -180,6 +180,7 @@ HELP: 1-
 } ;
 
 HELP: ?1+
+{ $values { "x" { $maybe number } } { "y" number } }
 { $description "If the input is not " { $link f } ", adds one. Otherwise, outputs a " { $snippet "0" } "." } ;
 
 HELP: sq
old mode 100644 (file)
new mode 100755 (executable)
index 2434bf8..7c9be86
@@ -64,7 +64,7 @@ PRIVATE>
 : recip ( x -- y ) 1 swap / ; inline
 : sgn ( x -- n ) dup 0 < [ drop -1 ] [ 0 > 1 0 ? ] if ; inline
 
-: ?1+ [ 1+ ] [ 0 ] if* ; inline
+: ?1+ ( x -- y ) [ 1+ ] [ 0 ] if* ; inline
 
 : rem ( x y -- z ) abs tuck mod over + swap mod ; foldable
 
@@ -114,15 +114,15 @@ M: float fp-infinity? ( float -- ? )
 
 <PRIVATE
 
-: iterate-prep 0 -rot ; inline
+: iterate-prep ( n quot -- i n quot ) 0 -rot ; inline
 
-: if-iterate? [ 2over < ] 2dip if ; inline
+: if-iterate? ( i n true false -- ) [ 2over < ] 2dip if ; inline
 
 : iterate-step ( i n quot -- i n quot )
     #! Apply quot to i, keep i and quot, hide n.
     swap [ 2dup 2slip ] dip swap ; inline
 
-: iterate-next [ 1+ ] 2dip ; inline
+: iterate-next ( i n quot -- i' n quot ) [ 1+ ] 2dip ; inline
 
 PRIVATE>
 
index 2df11d485874958d20f3acbd412844110f307abc..2c3b41ca4e9dc444c2e3865e118171bd1530c26a 100644 (file)
@@ -7,9 +7,11 @@ IN: quotations
 
 <PRIVATE
 
-: uncurry dup 2 slot swap 3 slot ; inline
+: uncurry ( curry -- obj quot )
+    dup 2 slot swap 3 slot ; inline
 
-: uncompose dup 2 slot swap 3 slot ; inline
+: uncompose ( compose -- quot quot2 )
+    dup 2 slot swap 3 slot ; inline
 
 PRIVATE>
 
index 7354759bb6a834c91ef1ce6fa776777e1a42c526..b3df0b889f7492b84d6f305481e3f5abedc0c65b 100644 (file)
@@ -191,6 +191,10 @@ HELP: exchange-unsafe
 { $values { "m" "a non-negative integer" } { "n" "a non-negative integer" } { "seq" "a mutable sequence" } }
 { $description "Unsafe variant of " { $link exchange } " that does not perform bounds checks." } ;
 
+HELP: first-unsafe
+{ $values { "seq" sequence } { "first" "the first element" } }
+{ $contract "Unsafe variant of " { $link first } " that does not perform bounds checks." } ;
+
 HELP: first2-unsafe
 { $values { "seq" sequence } { "first" "the first element" } { "second" "the second element" } }
 { $contract "Unsafe variant of " { $link first2 } " that does not perform bounds checks." } ;
@@ -602,7 +606,7 @@ HELP: reverse
 
 { reverse <reversed> reverse-here } related-words
 
-HELP: <reversed> ( seq -- reversed )
+HELP: <reversed>
 { $values { "seq" sequence } { "reversed" "a new sequence" } }
 { $description "Creates an instance of the " { $link reversed } " class." }
 { $see-also "virtual-sequences" } ;
@@ -649,7 +653,7 @@ HELP: <slice>
 HELP: repetition
 { $class-description "A virtual sequence consisting of " { $snippet "elt" } " repeated " { $snippet "len" } " times. Repetitions are created by calling " { $link <repetition> } "." } ;
 
-HELP: <repetition> ( len elt -- repetition )
+HELP: <repetition>
 { $values { "len" "a non-negative integer" } { "elt" object } { "repetition" repetition } }
 { $description "Creates a new " { $link repetition } "." }
 { $examples
index 7bb509cb67072e8aabcdef8ea02cbe5537c0eac9..31c7c8a4d73b2aa71e4df3f5bb5d22c2c19acafb 100644 (file)
@@ -101,16 +101,16 @@ M: integer nth-unsafe drop ;
 
 INSTANCE: integer immutable-sequence
 
-: first-unsafe
+: first-unsafe ( seq -- first )
     0 swap nth-unsafe ; inline
 
-: first2-unsafe
+: first2-unsafe ( seq -- first second )
     [ first-unsafe ] [ 1 swap nth-unsafe ] bi ; inline
 
-: first3-unsafe
+: first3-unsafe ( seq -- first second third )
     [ first2-unsafe ] [ 2 swap nth-unsafe ] bi ; inline
 
-: first4-unsafe
+: first4-unsafe ( seq -- first second third fourth )
     [ first3-unsafe ] [ 3 swap nth-unsafe ] bi ; inline
 
 : exchange-unsafe ( m n seq -- )
@@ -121,17 +121,17 @@ INSTANCE: integer immutable-sequence
 
 : (tail) ( seq n -- from to seq ) over length rot ; inline
 
-: from-end [ dup length ] dip - ; inline
+: from-end ( seq n -- seq n' ) [ dup length ] dip - ; inline
 
-: (2sequence)
+: (2sequence) ( obj1 obj2 seq -- seq )
     tuck 1 swap set-nth-unsafe
     tuck 0 swap set-nth-unsafe ; inline
 
-: (3sequence)
+: (3sequence) ( obj1 obj2 obj3 seq -- seq )
     tuck 2 swap set-nth-unsafe
     (2sequence) ; inline
 
-: (4sequence)
+: (4sequence) ( obj1 obj2 obj3 obj4 seq -- seq )
     tuck 3 swap set-nth-unsafe
     (3sequence) ; inline
 
@@ -331,7 +331,7 @@ PRIVATE>
 <PRIVATE
 
 : (each) ( seq quot -- n quot' )
-    [ dup length swap [ nth-unsafe ] curry ] dip compose ; inline
+    [ [ length ] keep [ nth-unsafe ] curry ] dip compose ; inline
 
 : (collect) ( quot into -- quot' )
     [ [ keep ] dip set-nth-unsafe ] 2curry ; inline
@@ -453,10 +453,10 @@ PRIVATE>
     over [ 2pusher [ each ] 2dip ] dip tuck [ like ] 2bi@ ; inline
 
 : monotonic? ( seq quot -- ? )
-    [ dup length 1- swap ] dip (monotonic) all? ; inline
+    [ [ length 1- ] keep ] dip (monotonic) all? ; inline
 
 : interleave ( seq between quot -- )
-    [ (interleave) ] 2curry [ dup length swap ] dip 2each ; inline
+    [ (interleave) ] 2curry [ [ length ] keep ] dip 2each ; inline
 
 : accumulator ( quot -- quot' vec )
     V{ } clone [ [ push ] curry compose ] keep ; inline
@@ -679,7 +679,7 @@ PRIVATE>
 <PRIVATE
 
 : joined-length ( seq glue -- n )
-    [ dup sum-lengths swap length 1 [-] ] dip length * + ;
+    [ [ sum-lengths ] [ length 1 [-] ] bi ] dip length * + ;
 
 PRIVATE>
 
index 438e604e789c433f8d0c9de28139b4ac0f601e7e..99766cadc218b2d289fe129b569ef816378bc8cf 100644 (file)
@@ -22,10 +22,6 @@ PREDICATE: writer < word "writer" word-prop ;
     [ drop define ]
     3bi ;
 
-: create-accessor ( name effect -- word )
-    [ "accessors" create dup ] dip
-    "declared-effect" set-word-prop ;
-
 : reader-quot ( slot-spec -- quot )
     [
         dup offset>> ,
@@ -35,7 +31,8 @@ PREDICATE: writer < word "writer" word-prop ;
     ] [ ] make ;
 
 : reader-word ( name -- word )
-    ">>" append (( object -- value )) create-accessor
+    ">>" append "accessors" create
+    dup (( object -- value )) "declared-effect" set-word-prop
     dup t "reader" set-word-prop ;
 
 : reader-props ( slot-spec -- assoc )
@@ -50,7 +47,8 @@ PREDICATE: writer < word "writer" word-prop ;
     define-typecheck ;
 
 : writer-word ( name -- word )
-    "(>>" ")" surround (( value object -- )) create-accessor
+    "(>>" ")" surround "accessors" create
+    dup (( value object -- )) "declared-effect" set-word-prop
     dup t "writer" set-word-prop ;
 
 ERROR: bad-slot-value value class ;
@@ -95,15 +93,16 @@ ERROR: bad-slot-value value class ;
     define-typecheck ;
 
 : setter-word ( name -- word )
-    ">>" prepend (( object value -- object )) create-accessor ;
+    ">>" prepend "accessors" create ;
 
 : define-setter ( name -- )
     dup setter-word dup deferred? [
-        [ \ over , swap writer-word , ] [ ] make define-inline
+        [ \ over , swap writer-word , ] [ ] make
+        (( object value -- object )) define-inline
     ] [ 2drop ] if ;
 
 : changer-word ( name -- word )
-    "change-" prepend (( object quot -- object )) create-accessor ;
+    "change-" prepend "accessors" create ;
 
 : define-changer ( name -- )
     dup changer-word dup deferred? [
@@ -112,7 +111,7 @@ ERROR: bad-slot-value value class ;
             over reader-word 1quotation
             [ dip call ] curry [ dip swap ] curry %
             swap setter-word ,
-        ] [ ] make define-inline
+        ] [ ] make (( object quot -- object )) define-inline
     ] [ 2drop ] if ;
 
 : define-slot-methods ( class slot-spec -- )
index 47399b61767940882bfa83bc17878c441811e669..938bf17cd2f664f79b65bbc9ddc2cb01b34bef87 100644 (file)
@@ -42,15 +42,28 @@ TUPLE: merge
         ] if
     ] if ; inline
 
-: l-elt   [ from1>> ] [ seq>> ] bi nth-unsafe ; inline
-: r-elt   [ from2>> ] [ seq>> ] bi nth-unsafe ; inline
-: l-done? [ from1>> ] [ to1>> ] bi number= ; inline
-: r-done? [ from2>> ] [ to2>> ] bi number= ; inline
-: dump-l  [ [ from1>> ] [ to1>> ] [ seq>> ] tri ] [ accum>> ] bi dump ; inline
-: dump-r  [ [ from2>> ] [ to2>> ] [ seq>> ] tri ] [ accum>> ] bi dump ; inline
-: l-next  [ [ l-elt ] [ [ 1+ ] change-from1 drop ] bi ] [ accum>> ] bi push ; inline
-: r-next  [ [ r-elt ] [ [ 1+ ] change-from2 drop ] bi ] [ accum>> ] bi push ; inline
-: decide  [ [ l-elt ] [ r-elt ] bi ] dip call +gt+ eq? ; inline
+: l-elt ( merge -- elt ) [ from1>> ] [ seq>> ] bi nth-unsafe ; inline
+
+: r-elt ( merge -- elt ) [ from2>> ] [ seq>> ] bi nth-unsafe ; inline
+
+: l-done? ( merge -- ? ) [ from1>> ] [ to1>> ] bi eq? ; inline
+
+: r-done? ( merge -- ? ) [ from2>> ] [ to2>> ] bi eq? ; inline
+
+: dump-l ( merge -- )
+    [ [ from1>> ] [ to1>> ] [ seq>> ] tri ] [ accum>> ] bi dump ; inline
+
+: dump-r ( merge -- )
+    [ [ from2>> ] [ to2>> ] [ seq>> ] tri ] [ accum>> ] bi dump ; inline
+
+: l-next ( merge -- )
+    [ [ l-elt ] [ [ 1+ ] change-from1 drop ] bi ] [ accum>> ] bi push ; inline
+
+: r-next ( merge -- )
+    [ [ r-elt ] [ [ 1+ ] change-from2 drop ] bi ] [ accum>> ] bi push ; inline
+
+: decide ( merge -- ? )
+    [ [ l-elt ] [ r-elt ] bi ] dip call +gt+ eq? ; inline
 
 : (merge) ( merge quot: ( elt1 elt2 -- <=> ) -- )
     over r-done? [ drop dump-l ] [
index 0c3f918fdca03879a8dd65c817b2e94272b0e8a6..7e4c80d4aeb2198681819be450310fbc6609313e 100644 (file)
@@ -7,11 +7,12 @@ IN: strings
 
 <PRIVATE
 
-: string-hashcode 3 slot ; inline
+: string-hashcode ( str -- n ) 3 slot ; inline
 
-: set-string-hashcode 3 set-slot ; inline
+: set-string-hashcode ( n str -- ) 3 set-slot ; inline
 
-: reset-string-hashcode f swap set-string-hashcode ; inline
+: reset-string-hashcode ( str -- )
+    f swap set-string-hashcode ; inline
 
 : rehash-string ( str -- )
     1 over sequence-hashcode swap set-string-hashcode ; inline
index 7d76bdd10bdbf1cc41b0950e62345931dab31df7..9640aa9275f524604910cce58a2321568e14f5d0 100644 (file)
@@ -169,8 +169,7 @@ IN: bootstrap.syntax
     ] define-syntax
 
     "C:" [
-        CREATE-WORD
-        scan-word [ boa ] curry define-inline
+        CREATE-WORD scan-word define-boa-word
     ] define-syntax
 
     "ERROR:" [
diff --git a/core/syntax/tags.txt b/core/syntax/tags.txt
deleted file mode 100755 (executable)
index e69de29..0000000
index aaf14617b374f6a5627cf3e07ee6493e95227c6f..389f16c68ebd58209736d2017b5e72541802c423 100644 (file)
@@ -344,6 +344,6 @@ HELP: make-inline
 { $side-effects "word" } ;
 
 HELP: define-inline
-{ $values { "word" word } { "quot" quotation } }
+{ $values { "word" word } { "def" quotation } { "effect" effect } }
 { $description "Defines a word and makes it " { $link POSTPONE: inline } "." }
 { $side-effects "word" } ;
index 8c144b03a2bac8f3ac3b7eb96d80ce0832b8050a..f0beab180919b13017886c251ee96ac61d520be2 100644 (file)
@@ -192,11 +192,11 @@ SYMBOL: visited
 : make-foldable ( word -- )
     dup make-flushable t "foldable" set-word-prop ;
 
-: define-inline ( word quot -- )
-    dupd define make-inline ;
+: define-inline ( word def effect -- )
+    [ define-declared ] [ 2drop make-inline ] 3bi ;
 
 : define-symbol ( word -- )
-    dup [ ] curry define-inline ;
+    dup [ ] curry (( -- word )) define-inline ;
 
 GENERIC: reset-word ( word -- )
 
index 8beaf9c4b1525dcf27096fc25cfe72f6dd8f3808..b148995cb8b1f89c58f9bf9705d9d2d90d78270c 100644 (file)
@@ -1,20 +1,19 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: help.markup help.syntax io.streams.string ;
+USING: help.markup help.syntax io.streams.string assocs
+heaps.private ;
 IN: assoc-heaps
 
 HELP: <assoc-heap>
+{ $values { "assoc" assoc } { "heap" heap } { "assoc-heap" assoc-heap } }
 { $description "Constructs a new " { $link assoc-heap } " from two existing data structures." } ;
 
 HELP: <unique-max-heap>
-{ $values
-    
-     { "unique-heap" assoc-heap } }
+{ $values { "unique-heap" assoc-heap } }
 { $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a max-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
 
 HELP: <unique-min-heap>
-{ $values
-     { "unique-heap" assoc-heap } }
+{ $values { "unique-heap" assoc-heap } }
 { $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a min-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
 
 { <unique-max-heap> <unique-min-heap> } related-words
index 218f566eda96bd24a8db9ce94ac84d1614b67be0..edc848a0caabde94b9f3959382070980d670af05 100644 (file)
@@ -2,7 +2,7 @@ USING: math math.order kernel arrays byte-arrays sequences
 colors.hsv benchmark.mandel.params accessors colors ;
 IN: benchmark.mandel.colors
 
-: scale 255 * >fixnum ; inline
+: scale ( x -- y ) 255 * >fixnum ; inline
 
 : scale-rgb ( rgba -- n )
     [ red>> scale ] [ green>> scale ] [ blue>> scale ] tri 3byte-array ;
index c501c35c6a2ea5fd9674c555780183de2af99ffe..1da3d91c61ef4ac7bfa15702ba5140f2b3f6c152 100755 (executable)
@@ -6,8 +6,8 @@ io.encodings.binary fry benchmark.mandel.params
 benchmark.mandel.colors ;
 IN: benchmark.mandel
 
-: x-inc width  200000 zoom-fact * / ; inline
-: y-inc height 150000 zoom-fact * / ; inline
+: x-inc ( -- x ) width  200000 zoom-fact * / ; inline
+: y-inc ( -- y ) height 150000 zoom-fact * / ; inline
 
 : c ( i j -- c )
     [ x-inc * center real-part x-inc width 2 / * - + >float ]
index 305fc2e33ba1e76f059346d44f715118f903870e..84c41ee69fabcc5788218032442315a13a2cdddd 100644 (file)
@@ -5,7 +5,7 @@ math.constants math.functions math.vectors prettyprint
 sequences hints arrays ;
 IN: benchmark.nbody
 
-: solar-mass 4 pi sq * ; inline
+: solar-mass ( -- x ) 4 pi sq * ; inline
 : days-per-year 365.24 ; inline
 
 TUPLE: body
index 086faf4f23cc385f9396e1b0c347938d38324268..76f9f6070e30f6864defa5c29513801e7cc9108f 100644 (file)
@@ -18,6 +18,14 @@ USING: kernel syntax accessors sequences
 
 IN: bubble-chamber
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! This is a Factor implementation of an art piece by Jared Tarbell:
+!
+!   http://complexification.net/gallery/machines/bubblechamber/
+!
+! Jared's version is written in Processing (Java)
+
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 ! processing
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -496,6 +504,16 @@ M:: <bubble-chamber> update-frame-buffer ( BUBBLE-CHAMBER -- )
 : big-bang ( bubble-chamber -- bubble-chamber )
   dup particles>> [ collide ] each ;
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: collide-one-of-each ( bubble-chamber -- bubble-chamber )
+  dup
+  particles>>
+  [ [ <muon>?   ] filter random collide ]
+  [ [ <quark>?  ] filter random collide ]
+  [ [ <hadron>? ] filter random collide ]
+  tri ;
+
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 ! Some initial configurations
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -524,30 +542,77 @@ M:: <bubble-chamber> update-frame-buffer ( BUBBLE-CHAMBER -- )
     
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: original-big-bang ( -- )
-  bubble-chamber
-    { 1000 1000 } >>size
+: hadron-chamber ( -- )
+  bubble-chamber-window
+  1000 [ hadron add-particle ] times
+  big-bang
+  drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: quark-chamber ( -- )
+  bubble-chamber-window
+  100 [ quark add-particle ] times
+  big-bang
+  drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: small ( -- )
+  <bubble-chamber> new-gadget
+    { 200 200 } >>size
+    randomize-collision-theta
     dup start-bubble-chamber-thread
     dup "Bubble Chamber" open-window
 
-  1789 [ muon   add-particle ] times
-  1300 [ quark  add-particle ] times
-  1000 [ hadron add-particle ] times
-   111 [ axion  add-particle ] times
+    42 [ muon   add-particle ] times
+    30 [ quark  add-particle ] times
+    21 [ hadron add-particle ] times
+     7 [ axion  add-particle ] times
 
-  big-bang
+    collide-one-of-each
 
   drop ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: hadron-chamber ( -- )
-  bubble-chamber-window
-  1000 [ hadron add-particle ] times
-  big-bang
+: medium ( -- )
+  <bubble-chamber> new-gadget
+    { 400 400 } >>size
+    randomize-collision-theta
+    dup start-bubble-chamber-thread
+    dup "Bubble Chamber" open-window
+
+    100 [ muon   add-particle ] times
+     81 [ quark  add-particle ] times
+     60 [ hadron add-particle ] times
+      9 [ axion  add-particle ] times
+
+    collide-one-of-each
+
+  drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: large ( -- )
+  <bubble-chamber> new-gadget
+    { 600 600 } >>size
+    randomize-collision-theta
+    dup start-bubble-chamber-thread
+    dup "Bubble Chamber" open-window
+
+    550 [ muon   add-particle ] times
+    339 [ quark  add-particle ] times
+    100 [ hadron add-particle ] times
+     11 [ axion  add-particle ] times
+
+    collide-one-of-each
+
   drop ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Experimental
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 : muon-chamber ( -- )
   bubble-chamber-window
@@ -557,6 +622,23 @@ M:: <bubble-chamber> update-frame-buffer ( BUBBLE-CHAMBER -- )
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+: original-big-bang ( -- )
+  bubble-chamber
+    { 1000 1000 } >>size
+    dup start-bubble-chamber-thread
+    dup "Bubble Chamber" open-window
+
+  1789 [ muon   add-particle ] times
+  1300 [ quark  add-particle ] times
+  1000 [ hadron add-particle ] times
+   111 [ axion  add-particle ] times
+
+  big-bang
+
+  drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
 : original-big-bang-variant ( -- )
   bubble-chamber-window
   1789 [ muon   add-particle ] times
@@ -566,3 +648,5 @@ M:: <bubble-chamber> update-frame-buffer ( BUBBLE-CHAMBER -- )
   dup particles>> [ collide randomize-collision-theta ] each
   drop ;
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
diff --git a/extra/bubble-chamber/hadron-chamber/hadron-chamber.factor b/extra/bubble-chamber/hadron-chamber/hadron-chamber.factor
new file mode 100644 (file)
index 0000000..4046724
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.hadron-chamber
+
+: main ( -- ) [ hadron-chamber ] with-ui ;
+
+MAIN: main
\ No newline at end of file
diff --git a/extra/bubble-chamber/hadron-chamber/tags.txt b/extra/bubble-chamber/hadron-chamber/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/large/large.factor b/extra/bubble-chamber/large/large.factor
new file mode 100644 (file)
index 0000000..8520277
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.large
+
+: main ( -- ) [ large ] with-ui ;
+
+MAIN: main
\ No newline at end of file
diff --git a/extra/bubble-chamber/large/tags.txt b/extra/bubble-chamber/large/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/medium/medium.factor b/extra/bubble-chamber/medium/medium.factor
new file mode 100644 (file)
index 0000000..35ee88e
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.medium
+
+: main ( -- ) [ medium ] with-ui ;
+
+MAIN: main
\ No newline at end of file
diff --git a/extra/bubble-chamber/medium/tags.txt b/extra/bubble-chamber/medium/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/original/original.factor b/extra/bubble-chamber/original/original.factor
new file mode 100644 (file)
index 0000000..4d1744e
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.original
+
+: main ( -- ) [ original ] with-ui ;
+
+MAIN: main
\ No newline at end of file
diff --git a/extra/bubble-chamber/original/tags.txt b/extra/bubble-chamber/original/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/quark-chamber/quark-chamber.factor b/extra/bubble-chamber/quark-chamber/quark-chamber.factor
new file mode 100644 (file)
index 0000000..99aa97b
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.quark-chamber
+
+: main ( -- ) [ quark-chamber ] with-ui ;
+
+MAIN: main
\ No newline at end of file
diff --git a/extra/bubble-chamber/quark-chamber/tags.txt b/extra/bubble-chamber/quark-chamber/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/small/small.factor b/extra/bubble-chamber/small/small.factor
new file mode 100644 (file)
index 0000000..d02e3ac
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.small
+
+: main ( -- ) [ small ] with-ui ;
+
+MAIN: main
\ No newline at end of file
diff --git a/extra/bubble-chamber/small/tags.txt b/extra/bubble-chamber/small/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/ten-hadrons/tags.txt b/extra/bubble-chamber/ten-hadrons/tags.txt
new file mode 100644 (file)
index 0000000..cb5fc20
--- /dev/null
@@ -0,0 +1 @@
+demos
diff --git a/extra/bubble-chamber/ten-hadrons/ten-hadrons.factor b/extra/bubble-chamber/ten-hadrons/ten-hadrons.factor
new file mode 100644 (file)
index 0000000..a29ecf8
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: ui bubble-chamber ;
+
+IN: bubble-chamber.ten-hadrons
+
+: main ( -- ) [ ten-hadrons ] with-ui ;
+
+MAIN: main
\ No newline at end of file
index 4203dd891fa5ada094dc52b95f182b6eb078e691..8db3567c23e2e75d08f4fd7564dbff3e3b639b57 100644 (file)
@@ -111,9 +111,9 @@ HELP: strftime
     } 
 } 
 { $examples 
-    { $example
-        "USING: calendar formatting ;"
-        "now \"%c\" strftime"
+    { $unchecked-example
+        "USING: calendar formatting io ;"
+        "now \"%c\" strftime print"
         "Mon Dec 15 14:40:43 2008" }
 } ;
 
index 55ebfdf6074b002e3c16a481f1361b39e4adb947..7dd845848828da31c927ad0fbd1951d7993e9f03 100644 (file)
@@ -113,7 +113,7 @@ MACRO: printf ( format-string -- )
 
 <PRIVATE
 
-: zero-pad 2 CHAR: 0 pad-left ; inline
+: zero-pad ( str -- str' ) 2 CHAR: 0 pad-left ; inline
 
 : >time ( timestamp -- string )
     [ hour>> ] [ minute>> ] [ second>> floor ] tri 3array
index 5a39fe9f2b6b1f7f443160813a2686180ce2a97e..bf36969219123597e8cd936cd652fb14dc713929 100644 (file)
@@ -163,32 +163,35 @@ M: source-file fuel-pprint path>> fuel-pprint ;
 : fuel-get-edit-location ( defspec -- )
     where [
        first2 [ (normalize-path) ] dip 2array fuel-eval-set-result
-    ] when* ;
+    ] when* ; inline
 
 : fuel-get-vocab-location ( vocab -- )
-    >vocab-link fuel-get-edit-location ;
+    >vocab-link fuel-get-edit-location ; inline
 
 : (fuel-get-vocabs) ( -- seq )
     all-vocabs-seq [ vocab-name ] map ; inline
 
 : fuel-get-vocabs ( -- )
-    (fuel-get-vocabs) fuel-eval-set-result ;
+    (fuel-get-vocabs) fuel-eval-set-result ; inline
 
 MEMO: (fuel-vocab-words) ( name -- seq )
     >vocab-link words [ name>> ] map ;
 
-: fuel-vocabs-words ( names/f -- seq )
-    [ (fuel-get-vocabs) ] unless* prune
-    [ (fuel-vocab-words) ] map concat natural-sort ;
+: fuel-current-words ( -- seq )
+    use get [ keys ] map concat ; inline
+
+: fuel-vocabs-words ( names -- seq )
+    prune [ (fuel-vocab-words) ] map concat ; inline
 
 : (fuel-get-words) ( prefix names/f -- seq )
-    fuel-vocabs-words swap [ drop-prefix nip length 0 = ] curry filter ;
+    [ fuel-vocabs-words ] [ fuel-current-words ] if* natural-sort
+    swap [ drop-prefix nip length 0 = ] curry filter ;
 
 : fuel-get-words ( prefix names -- )
     (fuel-get-words) fuel-eval-set-result ; inline
 
 : fuel-run-file ( path -- ) run-file ; inline
 
-: fuel-startup ( -- ) "listener" run ; inline
+: fuel-startup ( -- ) "listener" run-file ; inline
 
 MAIN: fuel-startup
diff --git a/extra/game-input/backend/authors.txt b/extra/game-input/backend/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/game-input/backend/backend.factor b/extra/game-input/backend/backend.factor
deleted file mode 100644 (file)
index df61179..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-USING: eval multiline system combinators ;
-IN: game-input.backend
-
-STRING: set-backend-for-macosx
-USING: namespaces parser game-input.backend.iokit ;
-<< "game-input" (use+) >>
-iokit-game-input-backend game-input-backend set-global
-;
-
-STRING: set-backend-for-windows
-USING: namespaces parser game-input.backend.dinput ;
-<< "game-input" (use+) >>
-dinput-game-input-backend game-input-backend set-global
-;
-
-{
-    { [ os macosx? ] [ set-backend-for-macosx eval ] }
-    { [ os windows? ] [ set-backend-for-windows eval ] }
-    { [ t ] [ ] }
-} cond
-
diff --git a/extra/game-input/backend/dinput/authors.txt b/extra/game-input/backend/dinput/authors.txt
deleted file mode 100755 (executable)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/game-input/backend/dinput/dinput.factor b/extra/game-input/backend/dinput/dinput.factor
deleted file mode 100755 (executable)
index b66a722..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-USING: windows.dinput windows.dinput.constants parser symbols
-alien.c-types windows.ole32 namespaces assocs kernel arrays
-vectors windows.kernel32 windows.com windows.dinput shuffle
-windows.user32 windows.messages sequences combinators
-math.geometry.rect ui.windows accessors math windows alien
-alien.strings io.encodings.utf16 io.encodings.utf16n
-continuations byte-arrays locals
-game-input.backend.dinput.keys-array ;
-<< "game-input" (use+) >>
-IN: game-input.backend.dinput
-
-SINGLETON: dinput-game-input-backend
-
-SYMBOLS: +dinput+ +keyboard-device+ +keyboard-state+
-    +controller-devices+ +controller-guids+
-    +device-change-window+ +device-change-handle+ ;
-
-: create-dinput ( -- )
-    f GetModuleHandle DIRECTINPUT_VERSION IDirectInput8W-iid
-    f <void*> [ f DirectInput8Create ole32-error ] keep *void*
-    +dinput+ set-global ;
-
-: delete-dinput ( -- )
-    +dinput+ global [ com-release f ] change-at ;
-
-: device-for-guid ( guid -- device )
-    +dinput+ get swap f <void*>
-    [ f IDirectInput8W::CreateDevice ole32-error ] keep *void* ;
-
-: set-coop-level ( device -- )
-    +device-change-window+ get DISCL_BACKGROUND DISCL_NONEXCLUSIVE bitor
-    IDirectInputDevice8W::SetCooperativeLevel ole32-error ;
-
-: set-data-format ( device format-symbol -- )
-    get IDirectInputDevice8W::SetDataFormat ole32-error ;
-
-: configure-keyboard ( keyboard -- )
-    [ c_dfDIKeyboard_HID set-data-format ] [ set-coop-level ] bi ;
-: configure-controller ( controller -- )
-    [ c_dfDIJoystick2 set-data-format ] [ set-coop-level ] bi ;
-
-: find-keyboard ( -- )
-    GUID_SysKeyboard device-for-guid
-    [ configure-keyboard ]
-    [ +keyboard-device+ set-global ] bi
-    256 <byte-array> <keys-array> keyboard-state boa
-    +keyboard-state+ set-global ;
-
-: device-info ( device -- DIDEVICEIMAGEINFOW )
-    "DIDEVICEINSTANCEW" <c-object>
-    "DIDEVICEINSTANCEW" heap-size over set-DIDEVICEINSTANCEW-dwSize
-    [ IDirectInputDevice8W::GetDeviceInfo ole32-error ] keep ;
-: device-caps ( device -- DIDEVCAPS )
-    "DIDEVCAPS" <c-object>
-    "DIDEVCAPS" heap-size over set-DIDEVCAPS-dwSize
-    [ IDirectInputDevice8W::GetCapabilities ole32-error ] keep ;
-
-: <guid> ( memory -- byte-array )
-    "GUID" heap-size memory>byte-array ;
-
-: device-guid ( device -- guid )
-    device-info DIDEVICEINSTANCEW-guidInstance <guid> ;
-
-: device-attached? ( device -- ? )
-    +dinput+ get swap device-guid
-    IDirectInput8W::GetDeviceStatus S_OK = ;
-
-: find-device-axes-callback ( -- alien )
-    [ ! ( lpddoi pvRef -- BOOL )
-        +controller-devices+ get at
-        swap DIDEVICEOBJECTINSTANCEW-guidType <guid> {
-            { [ dup GUID_XAxis = ] [ drop 0.0 >>x ] }
-            { [ dup GUID_YAxis = ] [ drop 0.0 >>y ] }
-            { [ dup GUID_ZAxis = ] [ drop 0.0 >>z ] }
-            { [ dup GUID_RxAxis = ] [ drop 0.0 >>rx ] }
-            { [ dup GUID_RyAxis = ] [ drop 0.0 >>ry ] }
-            { [ dup GUID_RzAxis = ] [ drop 0.0 >>rz ] }
-            { [ dup GUID_Slider = ] [ drop 0.0 >>slider ] }
-            [ drop ]
-        } cond drop
-        DIENUM_CONTINUE
-    ] LPDIENUMDEVICEOBJECTSCALLBACKW ;
-
-: find-device-axes ( device controller-state -- controller-state )
-    swap [ +controller-devices+ get set-at ] 2keep
-    find-device-axes-callback over DIDFT_AXIS
-    IDirectInputDevice8W::EnumObjects ole32-error ;
-
-: controller-state-template ( device -- controller-state )
-    controller-state new
-    over device-caps
-    [ DIDEVCAPS-dwButtons f <array> >>buttons ]
-    [ DIDEVCAPS-dwPOVs zero? f pov-neutral ? >>pov ] bi
-    find-device-axes ;
-
-: device-known? ( guid -- ? )
-    +controller-guids+ get key? ; inline
-
-: (add-controller) ( guid -- )
-    device-for-guid {
-        [ configure-controller ]
-        [ controller-state-template ]
-        [ dup device-guid +controller-guids+ get set-at ]
-        [ +controller-devices+ get set-at ]
-    } cleave ;
-
-: add-controller ( guid -- )
-    dup <guid> device-known? [ drop ] [ (add-controller) ] if ;
-
-: remove-controller ( device -- )
-    [ +controller-devices+ get delete-at ]
-    [ device-guid +controller-guids+ get delete-at ]
-    [ com-release ] tri ;
-
-: find-controller-callback ( -- alien )
-    [ ! ( lpddi pvRef -- BOOL )
-        drop DIDEVICEINSTANCEW-guidInstance add-controller
-        DIENUM_CONTINUE
-    ] LPDIENUMDEVICESCALLBACKW ;
-
-: find-controllers ( -- )
-    +dinput+ get DI8DEVCLASS_GAMECTRL find-controller-callback
-    f DIEDFL_ATTACHEDONLY IDirectInput8W::EnumDevices ole32-error ;
-
-: set-up-controllers ( -- )
-    4 <vector> +controller-devices+ set-global
-    4 <vector> +controller-guids+ set-global
-    find-controllers ;
-
-: find-and-remove-detached-devices ( -- )
-    +controller-devices+ get keys
-    [ device-attached? not ] filter
-    [ remove-controller ] each ;
-
-: device-interface? ( dbt-broadcast-hdr -- ? )
-    DEV_BROADCAST_HDR-dbch_devicetype DBT_DEVTYP_DEVICEINTERFACE = ;
-
-: device-arrived ( dbt-broadcast-hdr -- )
-    device-interface? [ find-controllers ] when ;
-
-: device-removed ( dbt-broadcast-hdr -- )
-    device-interface? [ find-and-remove-detached-devices ] when ;
-
-: handle-wm-devicechange ( hWnd uMsg wParam lParam -- )
-    [ 2drop ] 2dip swap {
-        { [ dup DBT_DEVICEARRIVAL = ]         [ drop <alien> device-arrived ] }
-        { [ dup DBT_DEVICEREMOVECOMPLETE = ]  [ drop <alien> device-removed ] }
-        [ 2drop ]
-    } cond ;
-
-TUPLE: window-rect < rect window-loc ;
-: <zero-window-rect> ( -- window-rect )
-    window-rect new
-    { 0 0 } >>window-loc
-    { 0 0 } >>loc
-    { 0 0 } >>dim ;
-
-: (device-notification-filter) ( -- DEV_BROADCAST_DEVICEW )
-    "DEV_BROADCAST_DEVICEW" <c-object>
-    "DEV_BROADCAST_DEVICEW" heap-size over set-DEV_BROADCAST_DEVICEW-dbcc_size
-    DBT_DEVTYP_DEVICEINTERFACE over set-DEV_BROADCAST_DEVICEW-dbcc_devicetype ;
-
-: create-device-change-window ( -- )
-    <zero-window-rect> create-window
-    [
-        (device-notification-filter)
-        DEVICE_NOTIFY_WINDOW_HANDLE DEVICE_NOTIFY_ALL_INTERFACE_CLASSES bitor
-        RegisterDeviceNotification
-        +device-change-handle+ set-global
-    ]
-    [ +device-change-window+ set-global ] bi ;
-
-: close-device-change-window ( -- )
-    +device-change-handle+ global
-    [ UnregisterDeviceNotification drop f ] change-at
-    +device-change-window+ global
-    [ DestroyWindow win32-error=0/f f ] change-at ;
-
-: add-wm-devicechange ( -- )
-    [ 4dup handle-wm-devicechange DefWindowProc ]
-    WM_DEVICECHANGE add-wm-handler ;
-
-: remove-wm-devicechange ( -- )
-    WM_DEVICECHANGE wm-handlers get-global delete-at ;
-
-: release-controllers ( -- )
-    +controller-devices+ global [
-        [ drop com-release ] assoc-each f
-    ] change-at
-    f +controller-guids+ set-global ;
-
-: release-keyboard ( -- )
-    +keyboard-device+ global
-    [ com-release f ] change-at
-    f +keyboard-state+ set-global ;
-
-M: dinput-game-input-backend (open-game-input)
-    create-dinput
-    create-device-change-window
-    find-keyboard
-    set-up-controllers
-    add-wm-devicechange ;
-
-M: dinput-game-input-backend (close-game-input)
-    remove-wm-devicechange
-    release-controllers
-    release-keyboard
-    close-device-change-window
-    delete-dinput ;
-
-M: dinput-game-input-backend (reset-game-input)
-    {
-        +dinput+ +keyboard-device+ +keyboard-state+
-        +controller-devices+ +controller-guids+
-        +device-change-window+ +device-change-handle+
-    } [ f swap set-global ] each ;
-
-M: dinput-game-input-backend get-controllers
-    +controller-devices+ get
-    [ drop controller boa ] { } assoc>map ;
-
-M: dinput-game-input-backend product-string
-    handle>> device-info DIDEVICEINSTANCEW-tszProductName
-    utf16n alien>string ;
-
-M: dinput-game-input-backend product-id
-    handle>> device-info DIDEVICEINSTANCEW-guidProduct <guid> ;
-M: dinput-game-input-backend instance-id
-    handle>> device-guid ;
-
-:: with-acquisition ( device acquired-quot succeeded-quot failed-quot -- result/f )
-    device IDirectInputDevice8W::Acquire succeeded? [
-        device acquired-quot call
-        succeeded-quot call
-    ] failed-quot if ; inline
-
-: pov-values
-    {
-        pov-up pov-up-right pov-right pov-down-right
-        pov-down pov-down-left pov-left pov-up-left
-    } ; inline
-
-: >axis ( long -- float )
-    32767 - 32767.0 /f ;
-: >slider ( long -- float )
-    65535.0 /f ;
-: >pov ( long -- symbol )
-    dup HEX: FFFF bitand HEX: FFFF =
-    [ drop pov-neutral ]
-    [ 2750 + 4500 /i pov-values nth ] if ;
-: >buttons ( alien length -- array )
-    memory>byte-array <keys-array> ;
-
-: (fill-if) ( controller-state DIJOYSTATE2 ? quot -- )
-    [ drop ] compose [ 2drop ] if ; inline
-
-: fill-controller-state ( controller-state DIJOYSTATE2 -- controller-state )
-    {
-        [ over x>> [ DIJOYSTATE2-lX >axis >>x ] (fill-if) ]
-        [ over y>> [ DIJOYSTATE2-lY >axis >>y ] (fill-if) ]
-        [ over z>> [ DIJOYSTATE2-lZ >axis >>z ] (fill-if) ]
-        [ over rx>> [ DIJOYSTATE2-lRx >axis >>rx ] (fill-if) ]
-        [ over ry>> [ DIJOYSTATE2-lRy >axis >>ry ] (fill-if) ]
-        [ over rz>> [ DIJOYSTATE2-lRz >axis >>rz ] (fill-if) ]
-        [ over slider>> [ DIJOYSTATE2-rglSlider *long >slider >>slider ] (fill-if) ]
-        [ over pov>> [ DIJOYSTATE2-rgdwPOV *uint >pov >>pov ] (fill-if) ]
-        [ DIJOYSTATE2-rgbButtons over buttons>> length >buttons >>buttons ]
-    } 2cleave ;
-
-: get-device-state ( device byte-array -- )
-    [ dup IDirectInputDevice8W::Poll ole32-error ] dip
-    [ length ] keep
-    IDirectInputDevice8W::GetDeviceState ole32-error ;
-
-: (read-controller) ( handle template -- state )
-    swap [ "DIJOYSTATE2" heap-size <byte-array> [ get-device-state ] keep ]
-    [ fill-controller-state ] [ drop f ] with-acquisition ;
-
-M: dinput-game-input-backend read-controller
-    handle>> dup +controller-devices+ get at
-    [ (read-controller) ] [ drop f ] if* ;
-
-M: dinput-game-input-backend calibrate-controller
-    handle>> f 0 IDirectInputDevice8W::RunControlPanel ole32-error ;
-
-M: dinput-game-input-backend read-keyboard
-    +keyboard-device+ get
-    [ +keyboard-state+ get [ keys>> underlying>> get-device-state ] keep ]
-    [ ] [ f ] with-acquisition ;
diff --git a/extra/game-input/backend/dinput/keys-array/keys-array.factor b/extra/game-input/backend/dinput/keys-array/keys-array.factor
deleted file mode 100755 (executable)
index b2dbe9a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-USING: sequences sequences.private math alien.c-types
-accessors ;
-IN: game-input.backend.dinput.keys-array
-
-TUPLE: keys-array underlying ;
-C: <keys-array> keys-array
-
-: >key ( byte -- ? )
-    HEX: 80 bitand c-bool> ;
-
-M: keys-array length underlying>> length ;
-M: keys-array nth-unsafe underlying>> nth-unsafe >key ;
-
-INSTANCE: keys-array sequence
-
diff --git a/extra/game-input/backend/dinput/summary.txt b/extra/game-input/backend/dinput/summary.txt
deleted file mode 100755 (executable)
index f758a5f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-DirectInput backend for game-input
diff --git a/extra/game-input/backend/dinput/tags.txt b/extra/game-input/backend/dinput/tags.txt
deleted file mode 100755 (executable)
index 82506ff..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-unportable
-games
diff --git a/extra/game-input/backend/iokit/authors.txt b/extra/game-input/backend/iokit/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/game-input/backend/iokit/iokit.factor b/extra/game-input/backend/iokit/iokit.factor
deleted file mode 100755 (executable)
index 5267dd6..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-USING: cocoa cocoa.plists core-foundation iokit iokit.hid
-kernel cocoa.enumeration destructors math.parser cocoa.application 
-sequences locals combinators.short-circuit threads
-symbols namespaces assocs vectors arrays combinators
-core-foundation.run-loop accessors sequences.private
-alien.c-types math parser ;
-<< "game-input" (use+) >>
-IN: game-input.backend.iokit
-
-SINGLETON: iokit-game-input-backend
-
-: hid-manager-matching ( matching-seq -- alien )
-    f 0 IOHIDManagerCreate
-    [ swap >plist IOHIDManagerSetDeviceMatchingMultiple ]
-    keep ;
-
-: devices-from-hid-manager ( manager -- vector )
-    [
-        IOHIDManagerCopyDevices
-        [ &CFRelease NSFastEnumeration>vector ] [ f ] if*
-    ] with-destructors ;
-
-: game-devices-matching-seq
-    {
-        H{ { "DeviceUsage" 4 } { "DeviceUsagePage" 1 } } ! joysticks
-        H{ { "DeviceUsage" 5 } { "DeviceUsagePage" 1 } } ! gamepads
-        H{ { "DeviceUsage" 6 } { "DeviceUsagePage" 1 } } ! keyboards
-    } ; inline
-
-: buttons-matching-hash
-    H{ { "UsagePage" 9 } { "Type" 2 } } ; inline
-: keys-matching-hash
-    H{ { "UsagePage" 7 } { "Type" 2 } } ; inline
-: x-axis-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 30 } { "Type" 1 } } ; inline
-: y-axis-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 31 } { "Type" 1 } } ; inline
-: z-axis-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 32 } { "Type" 1 } } ; inline
-: rx-axis-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 33 } { "Type" 1 } } ; inline
-: ry-axis-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 34 } { "Type" 1 } } ; inline
-: rz-axis-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 35 } { "Type" 1 } } ; inline
-: slider-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 36 } { "Type" 1 } } ; inline
-: hat-switch-matching-hash
-    H{ { "UsagePage" 1 } { "Usage" HEX: 39 } { "Type" 1 } } ; inline
-
-: device-elements-matching ( device matching-hash -- vector )
-    [
-        >plist 0 IOHIDDeviceCopyMatchingElements
-        [ &CFRelease NSFastEnumeration>vector ] [ f ] if*
-    ] with-destructors ;
-
-: button-count ( device -- button-count )
-    buttons-matching-hash device-elements-matching length ;
-
-: ?axis ( device hash -- axis/f )
-    device-elements-matching [ f ] [ first ] if-empty ;
-
-: ?x-axis ( device -- ? )
-    x-axis-matching-hash ?axis ;
-: ?y-axis ( device -- ? )
-    y-axis-matching-hash ?axis ;
-: ?z-axis ( device -- ? )
-    z-axis-matching-hash ?axis ;
-: ?rx-axis ( device -- ? )
-    rx-axis-matching-hash ?axis ;
-: ?ry-axis ( device -- ? )
-    ry-axis-matching-hash ?axis ;
-: ?rz-axis ( device -- ? )
-    rz-axis-matching-hash ?axis ;
-: ?slider ( device -- ? )
-    slider-matching-hash ?axis ;
-: ?hat-switch ( device -- ? )
-    hat-switch-matching-hash ?axis ;
-
-: hid-manager-matching-game-devices ( -- alien )
-    game-devices-matching-seq hid-manager-matching ;
-
-: device-property ( device key -- value )
-    <NSString> IOHIDDeviceGetProperty plist> ;
-: element-property ( element key -- value )
-    <NSString> IOHIDElementGetProperty plist> ;
-: set-element-property ( element key value -- )
-    [ <NSString> ] [ >plist ] bi* IOHIDElementSetProperty drop ;
-: transfer-element-property ( element from-key to-key -- )
-    [ dupd element-property ] dip swap set-element-property ;
-
-: controller-device? ( device -- ? )
-    {
-        [ 1 4 IOHIDDeviceConformsTo ]
-        [ 1 5 IOHIDDeviceConformsTo ]
-    } 1|| ;
-
-: element-usage ( element -- {usage-page,usage} )
-    [ IOHIDElementGetUsagePage ] [ IOHIDElementGetUsage ] bi
-    2array ;
-
-: button? ( {usage-page,usage} -- ? )
-    first 9 = ; inline
-: keyboard-key? ( {usage-page,usage} -- ? )
-    first 7 = ; inline
-: x-axis? ( {usage-page,usage} -- ? )
-    { 1 HEX: 30 } = ; inline
-: y-axis? ( {usage-page,usage} -- ? )
-    { 1 HEX: 31 } = ; inline
-: z-axis? ( {usage-page,usage} -- ? )
-    { 1 HEX: 32 } = ; inline
-: rx-axis? ( {usage-page,usage} -- ? )
-    { 1 HEX: 33 } = ; inline
-: ry-axis? ( {usage-page,usage} -- ? )
-    { 1 HEX: 34 } = ; inline
-: rz-axis? ( {usage-page,usage} -- ? )
-    { 1 HEX: 35 } = ; inline
-: slider? ( {usage-page,usage} -- ? )
-    { 1 HEX: 36 } = ; inline
-: hat-switch? ( {usage-page,usage} -- ? )
-    { 1 HEX: 39 } = ; inline
-
-: pov-values
-    {
-        pov-up pov-up-right pov-right pov-down-right
-        pov-down pov-down-left pov-left pov-up-left
-        pov-neutral
-    } ; inline
-
-: button-value ( value -- f/(0,1] )
-    IOHIDValueGetIntegerValue dup zero? [ drop f ] when ;
-: axis-value ( value -- [-1,1] )
-    kIOHIDValueScaleTypeCalibrated IOHIDValueGetScaledValue ;
-: pov-value ( value -- pov-direction )
-    IOHIDValueGetIntegerValue pov-values ?nth [ pov-neutral ] unless* ;
-
-: record-controller ( controller-state value -- )
-    dup IOHIDValueGetElement element-usage {
-        { [ dup button? ] [ [ button-value ] [ second 1- ] bi* rot buttons>> set-nth ] } 
-        { [ dup x-axis? ] [ drop axis-value >>x drop ] }
-        { [ dup y-axis? ] [ drop axis-value >>y drop ] }
-        { [ dup z-axis? ] [ drop axis-value >>z drop ] }
-        { [ dup rx-axis? ] [ drop axis-value >>rx drop ] }
-        { [ dup ry-axis? ] [ drop axis-value >>ry drop ] }
-        { [ dup rz-axis? ] [ drop axis-value >>rz drop ] }
-        { [ dup slider? ] [ drop axis-value >>slider drop ] }
-        { [ dup hat-switch? ] [ drop pov-value >>pov drop ] }
-        [ 3drop ]
-    } cond ;
-
-SYMBOLS: +hid-manager+ +keyboard-state+ +controller-states+ ;
-
-: ?set-nth ( value nth seq -- )
-    2dup bounds-check? [ set-nth-unsafe ] [ 3drop ] if ;
-
-: record-keyboard ( value -- )
-    dup IOHIDValueGetElement element-usage keyboard-key? [
-        [ IOHIDValueGetIntegerValue c-bool> ]
-        [ IOHIDValueGetElement IOHIDElementGetUsage ] bi
-        +keyboard-state+ get ?set-nth
-    ] [ drop ] if ;
-
-: default-calibrate-saturation ( element -- )
-    [ kIOHIDElementMinKey kIOHIDElementCalibrationSaturationMinKey transfer-element-property ]
-    [ kIOHIDElementMaxKey kIOHIDElementCalibrationSaturationMaxKey transfer-element-property ]
-    bi ;
-
-: default-calibrate-axis ( element -- )
-    [ kIOHIDElementCalibrationMinKey -1.0 set-element-property ]
-    [ kIOHIDElementCalibrationMaxKey 1.0 set-element-property ]
-    [ default-calibrate-saturation ]
-    tri ;
-
-: default-calibrate-slider ( element -- )
-    [ kIOHIDElementCalibrationMinKey 0.0 set-element-property ]
-    [ kIOHIDElementCalibrationMaxKey 1.0 set-element-property ]
-    [ default-calibrate-saturation ]
-    tri ;
-
-: (default) ( ? quot -- )
-    [ f ] if* ; inline
-
-: <device-controller-state> ( device -- controller-state )
-    {
-        [ ?x-axis [ default-calibrate-axis 0.0 ] (default) ]
-        [ ?y-axis [ default-calibrate-axis 0.0 ] (default) ]
-        [ ?z-axis [ default-calibrate-axis 0.0 ] (default) ]
-        [ ?rx-axis [ default-calibrate-axis 0.0 ] (default) ]
-        [ ?ry-axis [ default-calibrate-axis 0.0 ] (default) ]
-        [ ?rz-axis [ default-calibrate-axis 0.0 ] (default) ]
-        [ ?slider [ default-calibrate-slider 0.0 ] (default) ]
-        [ ?hat-switch pov-neutral and ]
-        [ button-count f <array> ]
-    } cleave controller-state boa ;
-
-: device-matched-callback ( -- alien )
-    [| context result sender device |
-        device controller-device? [
-            device <device-controller-state>
-            device +controller-states+ get set-at
-        ] when
-    ] IOHIDDeviceCallback ;
-
-: device-removed-callback ( -- alien )
-    [| context result sender device |
-        device +controller-states+ get delete-at
-    ] IOHIDDeviceCallback ;
-
-: device-input-callback ( -- alien )
-    [| context result sender value |
-        sender controller-device?
-        [ sender +controller-states+ get at value record-controller ]
-        [ value record-keyboard ]
-        if
-    ] IOHIDValueCallback ;
-
-: initialize-variables ( manager -- )
-    +hid-manager+ set-global
-    4 <vector> +controller-states+ set-global
-    256 f <array> +keyboard-state+ set-global ;
-
-M: iokit-game-input-backend (open-game-input)
-    hid-manager-matching-game-devices {
-        [ initialize-variables ]
-        [ device-matched-callback f IOHIDManagerRegisterDeviceMatchingCallback ]
-        [ device-removed-callback f IOHIDManagerRegisterDeviceRemovalCallback ]
-        [ device-input-callback f IOHIDManagerRegisterInputValueCallback ]
-        [ 0 IOHIDManagerOpen mach-error ]
-        [
-            CFRunLoopGetMain CFRunLoopDefaultMode
-            IOHIDManagerScheduleWithRunLoop
-        ]
-    } cleave ;
-
-M: iokit-game-input-backend (reset-game-input)
-    { +hid-manager+ +keyboard-state+ +controller-states+ }
-    [ f swap set-global ] each ;
-
-M: iokit-game-input-backend (close-game-input)
-    +hid-manager+ get-global [
-        +hid-manager+ global [ 
-            [
-                CFRunLoopGetMain CFRunLoopDefaultMode
-                IOHIDManagerUnscheduleFromRunLoop
-            ]
-            [ 0 IOHIDManagerClose drop ]
-            [ CFRelease ] tri
-            f
-        ] change-at
-        f +keyboard-state+ set-global
-        f +controller-states+ set-global
-    ] when ;
-
-M: iokit-game-input-backend get-controllers ( -- sequence )
-    +controller-states+ get keys [ controller boa ] map ;
-
-: ?join ( pre post sep -- string )
-    2over start [ swap 2nip ] [ [ 2array ] dip join ] if ;
-
-M: iokit-game-input-backend product-string ( controller -- string )
-    handle>>
-    [ kIOHIDManufacturerKey device-property ]
-    [ kIOHIDProductKey      device-property ] bi " " ?join ;
-M: iokit-game-input-backend product-id ( controller -- integer )
-    handle>>
-    [ kIOHIDVendorIDKey  device-property ]
-    [ kIOHIDProductIDKey device-property ] bi 2array ;
-M: iokit-game-input-backend instance-id ( controller -- integer )
-    handle>> kIOHIDLocationIDKey device-property ;
-
-M: iokit-game-input-backend read-controller ( controller -- controller-state )
-    handle>> +controller-states+ get at clone ;
-
-M: iokit-game-input-backend read-keyboard ( -- keyboard-state )
-    +keyboard-state+ get clone keyboard-state boa ;
-
-M: iokit-game-input-backend calibrate-controller ( controller -- )
-    drop ;
diff --git a/extra/game-input/backend/iokit/summary.txt b/extra/game-input/backend/iokit/summary.txt
deleted file mode 100644 (file)
index 8fc5d82..0000000
+++ /dev/null
@@ -1 +0,0 @@
-IOKit HID Manager backend for game-input
diff --git a/extra/game-input/backend/iokit/tags.txt b/extra/game-input/backend/iokit/tags.txt
deleted file mode 100755 (executable)
index 82506ff..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-unportable
-games
diff --git a/extra/game-input/backend/summary.txt b/extra/game-input/backend/summary.txt
deleted file mode 100644 (file)
index 6a77f8e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Platform-specific backends for game-input
diff --git a/extra/game-input/backend/tags.txt b/extra/game-input/backend/tags.txt
deleted file mode 100755 (executable)
index 84d4140..0000000
+++ /dev/null
@@ -1 +0,0 @@
-games
diff --git a/extra/game-input/dinput/authors.txt b/extra/game-input/dinput/authors.txt
new file mode 100755 (executable)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/extra/game-input/dinput/dinput.factor b/extra/game-input/dinput/dinput.factor
new file mode 100755 (executable)
index 0000000..cb7b34d
--- /dev/null
@@ -0,0 +1,290 @@
+USING: windows.dinput windows.dinput.constants parser symbols
+alien.c-types windows.ole32 namespaces assocs kernel arrays
+vectors windows.kernel32 windows.com windows.dinput shuffle
+windows.user32 windows.messages sequences combinators locals
+math.geometry.rect ui.windows accessors math windows alien
+alien.strings io.encodings.utf16 io.encodings.utf16n
+continuations byte-arrays game-input.dinput.keys-array
+game-input ;
+IN: game-input.dinput
+
+SINGLETON: dinput-game-input-backend
+
+dinput-game-input-backend game-input-backend set-global
+
+SYMBOLS: +dinput+ +keyboard-device+ +keyboard-state+
+    +controller-devices+ +controller-guids+
+    +device-change-window+ +device-change-handle+ ;
+
+: create-dinput ( -- )
+    f GetModuleHandle DIRECTINPUT_VERSION IDirectInput8W-iid
+    f <void*> [ f DirectInput8Create ole32-error ] keep *void*
+    +dinput+ set-global ;
+
+: delete-dinput ( -- )
+    +dinput+ global [ com-release f ] change-at ;
+
+: device-for-guid ( guid -- device )
+    +dinput+ get swap f <void*>
+    [ f IDirectInput8W::CreateDevice ole32-error ] keep *void* ;
+
+: set-coop-level ( device -- )
+    +device-change-window+ get DISCL_BACKGROUND DISCL_NONEXCLUSIVE bitor
+    IDirectInputDevice8W::SetCooperativeLevel ole32-error ;
+
+: set-data-format ( device format-symbol -- )
+    get IDirectInputDevice8W::SetDataFormat ole32-error ;
+
+: configure-keyboard ( keyboard -- )
+    [ c_dfDIKeyboard_HID set-data-format ] [ set-coop-level ] bi ;
+: configure-controller ( controller -- )
+    [ c_dfDIJoystick2 set-data-format ] [ set-coop-level ] bi ;
+
+: find-keyboard ( -- )
+    GUID_SysKeyboard device-for-guid
+    [ configure-keyboard ]
+    [ +keyboard-device+ set-global ] bi
+    256 <byte-array> <keys-array> keyboard-state boa
+    +keyboard-state+ set-global ;
+
+: device-info ( device -- DIDEVICEIMAGEINFOW )
+    "DIDEVICEINSTANCEW" <c-object>
+    "DIDEVICEINSTANCEW" heap-size over set-DIDEVICEINSTANCEW-dwSize
+    [ IDirectInputDevice8W::GetDeviceInfo ole32-error ] keep ;
+: device-caps ( device -- DIDEVCAPS )
+    "DIDEVCAPS" <c-object>
+    "DIDEVCAPS" heap-size over set-DIDEVCAPS-dwSize
+    [ IDirectInputDevice8W::GetCapabilities ole32-error ] keep ;
+
+: <guid> ( memory -- byte-array )
+    "GUID" heap-size memory>byte-array ;
+
+: device-guid ( device -- guid )
+    device-info DIDEVICEINSTANCEW-guidInstance <guid> ;
+
+: device-attached? ( device -- ? )
+    +dinput+ get swap device-guid
+    IDirectInput8W::GetDeviceStatus S_OK = ;
+
+: find-device-axes-callback ( -- alien )
+    [ ! ( lpddoi pvRef -- BOOL )
+        +controller-devices+ get at
+        swap DIDEVICEOBJECTINSTANCEW-guidType <guid> {
+            { [ dup GUID_XAxis = ] [ drop 0.0 >>x ] }
+            { [ dup GUID_YAxis = ] [ drop 0.0 >>y ] }
+            { [ dup GUID_ZAxis = ] [ drop 0.0 >>z ] }
+            { [ dup GUID_RxAxis = ] [ drop 0.0 >>rx ] }
+            { [ dup GUID_RyAxis = ] [ drop 0.0 >>ry ] }
+            { [ dup GUID_RzAxis = ] [ drop 0.0 >>rz ] }
+            { [ dup GUID_Slider = ] [ drop 0.0 >>slider ] }
+            [ drop ]
+        } cond drop
+        DIENUM_CONTINUE
+    ] LPDIENUMDEVICEOBJECTSCALLBACKW ;
+
+: find-device-axes ( device controller-state -- controller-state )
+    swap [ +controller-devices+ get set-at ] 2keep
+    find-device-axes-callback over DIDFT_AXIS
+    IDirectInputDevice8W::EnumObjects ole32-error ;
+
+: controller-state-template ( device -- controller-state )
+    controller-state new
+    over device-caps
+    [ DIDEVCAPS-dwButtons f <array> >>buttons ]
+    [ DIDEVCAPS-dwPOVs zero? f pov-neutral ? >>pov ] bi
+    find-device-axes ;
+
+: device-known? ( guid -- ? )
+    +controller-guids+ get key? ; inline
+
+: (add-controller) ( guid -- )
+    device-for-guid {
+        [ configure-controller ]
+        [ controller-state-template ]
+        [ dup device-guid +controller-guids+ get set-at ]
+        [ +controller-devices+ get set-at ]
+    } cleave ;
+
+: add-controller ( guid -- )
+    dup <guid> device-known? [ drop ] [ (add-controller) ] if ;
+
+: remove-controller ( device -- )
+    [ +controller-devices+ get delete-at ]
+    [ device-guid +controller-guids+ get delete-at ]
+    [ com-release ] tri ;
+
+: find-controller-callback ( -- alien )
+    [ ! ( lpddi pvRef -- BOOL )
+        drop DIDEVICEINSTANCEW-guidInstance add-controller
+        DIENUM_CONTINUE
+    ] LPDIENUMDEVICESCALLBACKW ;
+
+: find-controllers ( -- )
+    +dinput+ get DI8DEVCLASS_GAMECTRL find-controller-callback
+    f DIEDFL_ATTACHEDONLY IDirectInput8W::EnumDevices ole32-error ;
+
+: set-up-controllers ( -- )
+    4 <vector> +controller-devices+ set-global
+    4 <vector> +controller-guids+ set-global
+    find-controllers ;
+
+: find-and-remove-detached-devices ( -- )
+    +controller-devices+ get keys
+    [ device-attached? not ] filter
+    [ remove-controller ] each ;
+
+: device-interface? ( dbt-broadcast-hdr -- ? )
+    DEV_BROADCAST_HDR-dbch_devicetype DBT_DEVTYP_DEVICEINTERFACE = ;
+
+: device-arrived ( dbt-broadcast-hdr -- )
+    device-interface? [ find-controllers ] when ;
+
+: device-removed ( dbt-broadcast-hdr -- )
+    device-interface? [ find-and-remove-detached-devices ] when ;
+
+: handle-wm-devicechange ( hWnd uMsg wParam lParam -- )
+    [ 2drop ] 2dip swap {
+        { [ dup DBT_DEVICEARRIVAL = ]         [ drop <alien> device-arrived ] }
+        { [ dup DBT_DEVICEREMOVECOMPLETE = ]  [ drop <alien> device-removed ] }
+        [ 2drop ]
+    } cond ;
+
+TUPLE: window-rect < rect window-loc ;
+: <zero-window-rect> ( -- window-rect )
+    window-rect new
+    { 0 0 } >>window-loc
+    { 0 0 } >>loc
+    { 0 0 } >>dim ;
+
+: (device-notification-filter) ( -- DEV_BROADCAST_DEVICEW )
+    "DEV_BROADCAST_DEVICEW" <c-object>
+    "DEV_BROADCAST_DEVICEW" heap-size over set-DEV_BROADCAST_DEVICEW-dbcc_size
+    DBT_DEVTYP_DEVICEINTERFACE over set-DEV_BROADCAST_DEVICEW-dbcc_devicetype ;
+
+: create-device-change-window ( -- )
+    <zero-window-rect> create-window
+    [
+        (device-notification-filter)
+        DEVICE_NOTIFY_WINDOW_HANDLE DEVICE_NOTIFY_ALL_INTERFACE_CLASSES bitor
+        RegisterDeviceNotification
+        +device-change-handle+ set-global
+    ]
+    [ +device-change-window+ set-global ] bi ;
+
+: close-device-change-window ( -- )
+    +device-change-handle+ global
+    [ UnregisterDeviceNotification drop f ] change-at
+    +device-change-window+ global
+    [ DestroyWindow win32-error=0/f f ] change-at ;
+
+: add-wm-devicechange ( -- )
+    [ 4dup handle-wm-devicechange DefWindowProc ]
+    WM_DEVICECHANGE add-wm-handler ;
+
+: remove-wm-devicechange ( -- )
+    WM_DEVICECHANGE wm-handlers get-global delete-at ;
+
+: release-controllers ( -- )
+    +controller-devices+ global [
+        [ drop com-release ] assoc-each f
+    ] change-at
+    f +controller-guids+ set-global ;
+
+: release-keyboard ( -- )
+    +keyboard-device+ global
+    [ com-release f ] change-at
+    f +keyboard-state+ set-global ;
+
+M: dinput-game-input-backend (open-game-input)
+    create-dinput
+    create-device-change-window
+    find-keyboard
+    set-up-controllers
+    add-wm-devicechange ;
+
+M: dinput-game-input-backend (close-game-input)
+    remove-wm-devicechange
+    release-controllers
+    release-keyboard
+    close-device-change-window
+    delete-dinput ;
+
+M: dinput-game-input-backend (reset-game-input)
+    {
+        +dinput+ +keyboard-device+ +keyboard-state+
+        +controller-devices+ +controller-guids+
+        +device-change-window+ +device-change-handle+
+    } [ f swap set-global ] each ;
+
+M: dinput-game-input-backend get-controllers
+    +controller-devices+ get
+    [ drop controller boa ] { } assoc>map ;
+
+M: dinput-game-input-backend product-string
+    handle>> device-info DIDEVICEINSTANCEW-tszProductName
+    utf16n alien>string ;
+
+M: dinput-game-input-backend product-id
+    handle>> device-info DIDEVICEINSTANCEW-guidProduct <guid> ;
+M: dinput-game-input-backend instance-id
+    handle>> device-guid ;
+
+:: with-acquisition ( device acquired-quot succeeded-quot failed-quot -- result/f )
+    device IDirectInputDevice8W::Acquire succeeded? [
+        device acquired-quot call
+        succeeded-quot call
+    ] failed-quot if ; inline
+
+: pov-values
+    {
+        pov-up pov-up-right pov-right pov-down-right
+        pov-down pov-down-left pov-left pov-up-left
+    } ; inline
+
+: >axis ( long -- float )
+    32767 - 32767.0 /f ;
+: >slider ( long -- float )
+    65535.0 /f ;
+: >pov ( long -- symbol )
+    dup HEX: FFFF bitand HEX: FFFF =
+    [ drop pov-neutral ]
+    [ 2750 + 4500 /i pov-values nth ] if ;
+: >buttons ( alien length -- array )
+    memory>byte-array <keys-array> ;
+
+: (fill-if) ( controller-state DIJOYSTATE2 ? quot -- )
+    [ drop ] compose [ 2drop ] if ; inline
+
+: fill-controller-state ( controller-state DIJOYSTATE2 -- controller-state )
+    {
+        [ over x>> [ DIJOYSTATE2-lX >axis >>x ] (fill-if) ]
+        [ over y>> [ DIJOYSTATE2-lY >axis >>y ] (fill-if) ]
+        [ over z>> [ DIJOYSTATE2-lZ >axis >>z ] (fill-if) ]
+        [ over rx>> [ DIJOYSTATE2-lRx >axis >>rx ] (fill-if) ]
+        [ over ry>> [ DIJOYSTATE2-lRy >axis >>ry ] (fill-if) ]
+        [ over rz>> [ DIJOYSTATE2-lRz >axis >>rz ] (fill-if) ]
+        [ over slider>> [ DIJOYSTATE2-rglSlider *long >slider >>slider ] (fill-if) ]
+        [ over pov>> [ DIJOYSTATE2-rgdwPOV *uint >pov >>pov ] (fill-if) ]
+        [ DIJOYSTATE2-rgbButtons over buttons>> length >buttons >>buttons ]
+    } 2cleave ;
+
+: get-device-state ( device byte-array -- )
+    [ dup IDirectInputDevice8W::Poll ole32-error ] dip
+    [ length ] keep
+    IDirectInputDevice8W::GetDeviceState ole32-error ;
+
+: (read-controller) ( handle template -- state )
+    swap [ "DIJOYSTATE2" heap-size <byte-array> [ get-device-state ] keep ]
+    [ fill-controller-state ] [ drop f ] with-acquisition ;
+
+M: dinput-game-input-backend read-controller
+    handle>> dup +controller-devices+ get at
+    [ (read-controller) ] [ drop f ] if* ;
+
+M: dinput-game-input-backend calibrate-controller
+    handle>> f 0 IDirectInputDevice8W::RunControlPanel ole32-error ;
+
+M: dinput-game-input-backend read-keyboard
+    +keyboard-device+ get
+    [ +keyboard-state+ get [ keys>> underlying>> get-device-state ] keep ]
+    [ ] [ f ] with-acquisition ;
diff --git a/extra/game-input/dinput/keys-array/keys-array.factor b/extra/game-input/dinput/keys-array/keys-array.factor
new file mode 100755 (executable)
index 0000000..12ad072
--- /dev/null
@@ -0,0 +1,15 @@
+USING: sequences sequences.private math alien.c-types
+accessors ;
+IN: game-input.dinput.keys-array
+
+TUPLE: keys-array underlying ;
+C: <keys-array> keys-array
+
+: >key ( byte -- ? )
+    HEX: 80 bitand c-bool> ;
+
+M: keys-array length underlying>> length ;
+M: keys-array nth-unsafe underlying>> nth-unsafe >key ;
+
+INSTANCE: keys-array sequence
+
diff --git a/extra/game-input/dinput/summary.txt b/extra/game-input/dinput/summary.txt
new file mode 100755 (executable)
index 0000000..f758a5f
--- /dev/null
@@ -0,0 +1 @@
+DirectInput backend for game-input
diff --git a/extra/game-input/dinput/tags.txt b/extra/game-input/dinput/tags.txt
new file mode 100755 (executable)
index 0000000..82506ff
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+games
index 18ec04df1f4474c6625d976bf36a24435c8df859..7699b8bd1eed9f96508330098b1b7c30f31678b3 100755 (executable)
@@ -1,5 +1,6 @@
-USING: arrays accessors continuations kernel symbols
-combinators.lib sequences namespaces init vocabs ;
+USING: arrays accessors continuations kernel symbols system
+combinators.lib sequences namespaces init vocabs vocabs.loader
+combinators ;
 IN: game-input
 
 SYMBOLS: game-input-backend game-input-opened ;
@@ -19,10 +20,6 @@ M: f (reset-game-input) ;
     game-input-opened off
     (reset-game-input) ;
 
-: load-game-input-backend ( -- )
-    game-input-backend get
-    [ "game-input.backend" load-vocab drop ] unless ;
-
 [ reset-game-input ] "game-input" add-init-hook
 
 PRIVATE>
@@ -76,5 +73,8 @@ M: keyboard-state clone
 
 HOOK: read-keyboard game-input-backend ( -- keyboard-state )
 
-load-game-input-backend
-
+{
+    { [ os windows? ] [ "game-input.dinput" require ] }
+    { [ os macosx? ] [ "game-input.iokit" require ] }
+    { [ t ] [ ] }
+} cond
diff --git a/extra/game-input/iokit/authors.txt b/extra/game-input/iokit/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/extra/game-input/iokit/iokit.factor b/extra/game-input/iokit/iokit.factor
new file mode 100755 (executable)
index 0000000..8bfce00
--- /dev/null
@@ -0,0 +1,279 @@
+USING: cocoa cocoa.plists core-foundation iokit iokit.hid
+kernel cocoa.enumeration destructors math.parser cocoa.application 
+sequences locals combinators.short-circuit threads
+symbols namespaces assocs vectors arrays combinators
+core-foundation.run-loop accessors sequences.private
+alien.c-types math parser game-input ;
+IN: game-input.iokit
+
+SINGLETON: iokit-game-input-backend
+
+iokit-game-input-backend game-input-backend set-global
+
+: hid-manager-matching ( matching-seq -- alien )
+    f 0 IOHIDManagerCreate
+    [ swap >plist IOHIDManagerSetDeviceMatchingMultiple ]
+    keep ;
+
+: devices-from-hid-manager ( manager -- vector )
+    [
+        IOHIDManagerCopyDevices
+        [ &CFRelease NSFastEnumeration>vector ] [ f ] if*
+    ] with-destructors ;
+
+: game-devices-matching-seq
+    {
+        H{ { "DeviceUsage" 4 } { "DeviceUsagePage" 1 } } ! joysticks
+        H{ { "DeviceUsage" 5 } { "DeviceUsagePage" 1 } } ! gamepads
+        H{ { "DeviceUsage" 6 } { "DeviceUsagePage" 1 } } ! keyboards
+    } ; inline
+
+: buttons-matching-hash
+    H{ { "UsagePage" 9 } { "Type" 2 } } ; inline
+: keys-matching-hash
+    H{ { "UsagePage" 7 } { "Type" 2 } } ; inline
+: x-axis-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 30 } { "Type" 1 } } ; inline
+: y-axis-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 31 } { "Type" 1 } } ; inline
+: z-axis-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 32 } { "Type" 1 } } ; inline
+: rx-axis-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 33 } { "Type" 1 } } ; inline
+: ry-axis-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 34 } { "Type" 1 } } ; inline
+: rz-axis-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 35 } { "Type" 1 } } ; inline
+: slider-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 36 } { "Type" 1 } } ; inline
+: hat-switch-matching-hash
+    H{ { "UsagePage" 1 } { "Usage" HEX: 39 } { "Type" 1 } } ; inline
+
+: device-elements-matching ( device matching-hash -- vector )
+    [
+        >plist 0 IOHIDDeviceCopyMatchingElements
+        [ &CFRelease NSFastEnumeration>vector ] [ f ] if*
+    ] with-destructors ;
+
+: button-count ( device -- button-count )
+    buttons-matching-hash device-elements-matching length ;
+
+: ?axis ( device hash -- axis/f )
+    device-elements-matching [ f ] [ first ] if-empty ;
+
+: ?x-axis ( device -- ? )
+    x-axis-matching-hash ?axis ;
+: ?y-axis ( device -- ? )
+    y-axis-matching-hash ?axis ;
+: ?z-axis ( device -- ? )
+    z-axis-matching-hash ?axis ;
+: ?rx-axis ( device -- ? )
+    rx-axis-matching-hash ?axis ;
+: ?ry-axis ( device -- ? )
+    ry-axis-matching-hash ?axis ;
+: ?rz-axis ( device -- ? )
+    rz-axis-matching-hash ?axis ;
+: ?slider ( device -- ? )
+    slider-matching-hash ?axis ;
+: ?hat-switch ( device -- ? )
+    hat-switch-matching-hash ?axis ;
+
+: hid-manager-matching-game-devices ( -- alien )
+    game-devices-matching-seq hid-manager-matching ;
+
+: device-property ( device key -- value )
+    <NSString> IOHIDDeviceGetProperty plist> ;
+: element-property ( element key -- value )
+    <NSString> IOHIDElementGetProperty plist> ;
+: set-element-property ( element key value -- )
+    [ <NSString> ] [ >plist ] bi* IOHIDElementSetProperty drop ;
+: transfer-element-property ( element from-key to-key -- )
+    [ dupd element-property ] dip swap set-element-property ;
+
+: controller-device? ( device -- ? )
+    {
+        [ 1 4 IOHIDDeviceConformsTo ]
+        [ 1 5 IOHIDDeviceConformsTo ]
+    } 1|| ;
+
+: element-usage ( element -- {usage-page,usage} )
+    [ IOHIDElementGetUsagePage ] [ IOHIDElementGetUsage ] bi
+    2array ;
+
+: button? ( {usage-page,usage} -- ? )
+    first 9 = ; inline
+: keyboard-key? ( {usage-page,usage} -- ? )
+    first 7 = ; inline
+: x-axis? ( {usage-page,usage} -- ? )
+    { 1 HEX: 30 } = ; inline
+: y-axis? ( {usage-page,usage} -- ? )
+    { 1 HEX: 31 } = ; inline
+: z-axis? ( {usage-page,usage} -- ? )
+    { 1 HEX: 32 } = ; inline
+: rx-axis? ( {usage-page,usage} -- ? )
+    { 1 HEX: 33 } = ; inline
+: ry-axis? ( {usage-page,usage} -- ? )
+    { 1 HEX: 34 } = ; inline
+: rz-axis? ( {usage-page,usage} -- ? )
+    { 1 HEX: 35 } = ; inline
+: slider? ( {usage-page,usage} -- ? )
+    { 1 HEX: 36 } = ; inline
+: hat-switch? ( {usage-page,usage} -- ? )
+    { 1 HEX: 39 } = ; inline
+
+: pov-values
+    {
+        pov-up pov-up-right pov-right pov-down-right
+        pov-down pov-down-left pov-left pov-up-left
+        pov-neutral
+    } ; inline
+
+: button-value ( value -- f/(0,1] )
+    IOHIDValueGetIntegerValue dup zero? [ drop f ] when ;
+: axis-value ( value -- [-1,1] )
+    kIOHIDValueScaleTypeCalibrated IOHIDValueGetScaledValue ;
+: pov-value ( value -- pov-direction )
+    IOHIDValueGetIntegerValue pov-values ?nth [ pov-neutral ] unless* ;
+
+: record-controller ( controller-state value -- )
+    dup IOHIDValueGetElement element-usage {
+        { [ dup button? ] [ [ button-value ] [ second 1- ] bi* rot buttons>> set-nth ] } 
+        { [ dup x-axis? ] [ drop axis-value >>x drop ] }
+        { [ dup y-axis? ] [ drop axis-value >>y drop ] }
+        { [ dup z-axis? ] [ drop axis-value >>z drop ] }
+        { [ dup rx-axis? ] [ drop axis-value >>rx drop ] }
+        { [ dup ry-axis? ] [ drop axis-value >>ry drop ] }
+        { [ dup rz-axis? ] [ drop axis-value >>rz drop ] }
+        { [ dup slider? ] [ drop axis-value >>slider drop ] }
+        { [ dup hat-switch? ] [ drop pov-value >>pov drop ] }
+        [ 3drop ]
+    } cond ;
+
+SYMBOLS: +hid-manager+ +keyboard-state+ +controller-states+ ;
+
+: ?set-nth ( value nth seq -- )
+    2dup bounds-check? [ set-nth-unsafe ] [ 3drop ] if ;
+
+: record-keyboard ( value -- )
+    dup IOHIDValueGetElement element-usage keyboard-key? [
+        [ IOHIDValueGetIntegerValue c-bool> ]
+        [ IOHIDValueGetElement IOHIDElementGetUsage ] bi
+        +keyboard-state+ get ?set-nth
+    ] [ drop ] if ;
+
+: default-calibrate-saturation ( element -- )
+    [ kIOHIDElementMinKey kIOHIDElementCalibrationSaturationMinKey transfer-element-property ]
+    [ kIOHIDElementMaxKey kIOHIDElementCalibrationSaturationMaxKey transfer-element-property ]
+    bi ;
+
+: default-calibrate-axis ( element -- )
+    [ kIOHIDElementCalibrationMinKey -1.0 set-element-property ]
+    [ kIOHIDElementCalibrationMaxKey 1.0 set-element-property ]
+    [ default-calibrate-saturation ]
+    tri ;
+
+: default-calibrate-slider ( element -- )
+    [ kIOHIDElementCalibrationMinKey 0.0 set-element-property ]
+    [ kIOHIDElementCalibrationMaxKey 1.0 set-element-property ]
+    [ default-calibrate-saturation ]
+    tri ;
+
+: (default) ( ? quot -- )
+    [ f ] if* ; inline
+
+: <device-controller-state> ( device -- controller-state )
+    {
+        [ ?x-axis [ default-calibrate-axis 0.0 ] (default) ]
+        [ ?y-axis [ default-calibrate-axis 0.0 ] (default) ]
+        [ ?z-axis [ default-calibrate-axis 0.0 ] (default) ]
+        [ ?rx-axis [ default-calibrate-axis 0.0 ] (default) ]
+        [ ?ry-axis [ default-calibrate-axis 0.0 ] (default) ]
+        [ ?rz-axis [ default-calibrate-axis 0.0 ] (default) ]
+        [ ?slider [ default-calibrate-slider 0.0 ] (default) ]
+        [ ?hat-switch pov-neutral and ]
+        [ button-count f <array> ]
+    } cleave controller-state boa ;
+
+: device-matched-callback ( -- alien )
+    [| context result sender device |
+        device controller-device? [
+            device <device-controller-state>
+            device +controller-states+ get set-at
+        ] when
+    ] IOHIDDeviceCallback ;
+
+: device-removed-callback ( -- alien )
+    [| context result sender device |
+        device +controller-states+ get delete-at
+    ] IOHIDDeviceCallback ;
+
+: device-input-callback ( -- alien )
+    [| context result sender value |
+        sender controller-device?
+        [ sender +controller-states+ get at value record-controller ]
+        [ value record-keyboard ]
+        if
+    ] IOHIDValueCallback ;
+
+: initialize-variables ( manager -- )
+    +hid-manager+ set-global
+    4 <vector> +controller-states+ set-global
+    256 f <array> +keyboard-state+ set-global ;
+
+M: iokit-game-input-backend (open-game-input)
+    hid-manager-matching-game-devices {
+        [ initialize-variables ]
+        [ device-matched-callback f IOHIDManagerRegisterDeviceMatchingCallback ]
+        [ device-removed-callback f IOHIDManagerRegisterDeviceRemovalCallback ]
+        [ device-input-callback f IOHIDManagerRegisterInputValueCallback ]
+        [ 0 IOHIDManagerOpen mach-error ]
+        [
+            CFRunLoopGetMain CFRunLoopDefaultMode
+            IOHIDManagerScheduleWithRunLoop
+        ]
+    } cleave ;
+
+M: iokit-game-input-backend (reset-game-input)
+    { +hid-manager+ +keyboard-state+ +controller-states+ }
+    [ f swap set-global ] each ;
+
+M: iokit-game-input-backend (close-game-input)
+    +hid-manager+ get-global [
+        +hid-manager+ global [ 
+            [
+                CFRunLoopGetMain CFRunLoopDefaultMode
+                IOHIDManagerUnscheduleFromRunLoop
+            ]
+            [ 0 IOHIDManagerClose drop ]
+            [ CFRelease ] tri
+            f
+        ] change-at
+        f +keyboard-state+ set-global
+        f +controller-states+ set-global
+    ] when ;
+
+M: iokit-game-input-backend get-controllers ( -- sequence )
+    +controller-states+ get keys [ controller boa ] map ;
+
+: ?join ( pre post sep -- string )
+    2over start [ swap 2nip ] [ [ 2array ] dip join ] if ;
+
+M: iokit-game-input-backend product-string ( controller -- string )
+    handle>>
+    [ kIOHIDManufacturerKey device-property ]
+    [ kIOHIDProductKey      device-property ] bi " " ?join ;
+M: iokit-game-input-backend product-id ( controller -- integer )
+    handle>>
+    [ kIOHIDVendorIDKey  device-property ]
+    [ kIOHIDProductIDKey device-property ] bi 2array ;
+M: iokit-game-input-backend instance-id ( controller -- integer )
+    handle>> kIOHIDLocationIDKey device-property ;
+
+M: iokit-game-input-backend read-controller ( controller -- controller-state )
+    handle>> +controller-states+ get at clone ;
+
+M: iokit-game-input-backend read-keyboard ( -- keyboard-state )
+    +keyboard-state+ get clone keyboard-state boa ;
+
+M: iokit-game-input-backend calibrate-controller ( controller -- )
+    drop ;
diff --git a/extra/game-input/iokit/summary.txt b/extra/game-input/iokit/summary.txt
new file mode 100644 (file)
index 0000000..8fc5d82
--- /dev/null
@@ -0,0 +1 @@
+IOKit HID Manager backend for game-input
diff --git a/extra/game-input/iokit/tags.txt b/extra/game-input/iokit/tags.txt
new file mode 100755 (executable)
index 0000000..82506ff
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+games
index 9bb8db0f6d5302f791714577c1d780bc5a996971..a0212e47dedbb543e40f4991e6eeef35bc08e6ab 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2007 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 
-USING: alien arrays byte-arrays combinators summary io.backend
+USING: alien arrays byte-arrays combinators summary
 graphics.viewer io io.binary io.files kernel libc math
 math.functions math.bitwise namespaces opengl opengl.gl
 prettyprint sequences strings ui ui.gadgets.panes fry
@@ -91,7 +91,7 @@ M: bitmap-magic summary
     dup color-index-length read >>color-index drop ;
 
 : load-bitmap ( path -- bitmap )
-    normalize-path binary [
+    binary [
         bitmap new
             dup parse-file-header
             dup parse-bitmap-header
index 936bc182bc11465f8a86194e9f620fedbe5bc0ff..bcea984579f404b171929c776e8fe39688c2160d 100644 (file)
@@ -10,9 +10,8 @@ TUPLE: serial stream path baud
 
 ERROR: invalid-baud baud ;
 M: invalid-baud summary ( invalid-baud -- string )
-    "Baud rate "
-    swap baud>> number>string
-    " not supported" 3append ;
+    baud>> number>string
+    "Baud rate " " not supported" surround ;
 
 HOOK: lookup-baud os ( m -- n )
 HOOK: open-serial os ( serial -- stream )
index 11ba5d3687c99c920c5da94c2b9112caf44a2aa2..465c55c833807d1b8193cc3c580d9ea50bbefc4a 100644 (file)
@@ -53,7 +53,7 @@ IN: iokit.hid
 : kIOHIDElementDuplicateIndexKey              "DuplicateIndex" ; inline
 : kIOHIDElementParentCollectionKey            "ParentCollection" ; inline
 
-: kIOHIDElementVendorSpecificKey
+: kIOHIDElementVendorSpecificKey ( -- str )
     cpu ppc? "VendorSpecifc" "VendorSpecific" ? ; inline
 
 : kIOHIDElementCookieMinKey           "ElementCookieMin" ; inline
index 41f19b9b07b7e2a93d53a27006d6bf5d5635a46c..643fc3ae051bc94c46327d9b4185e6284655eb38 100755 (executable)
@@ -32,23 +32,22 @@ SYMBOL: and-needed?
     0 < "Negative " "" ? ;
 
 : 3digit-groups ( n -- seq )
-    number>string <reversed> 3 <groups>
-    [ reverse string>number ] map ;
+    [ dup 0 > ] [ 1000 /mod ] [ ] produce nip ;
 
 : hundreds-place ( n -- str )
-    100 /mod swap dup zero? [
+    100 /mod over 0 = [
         2drop ""
     ] [
-        small-numbers " Hundred" append
-        swap zero? [ " and " append ] unless
+        [ small-numbers " Hundred" append ] dip
+        0 = [ " and " append ] unless
     ] if ;
 
 : tens-place ( n -- str )
     100 mod dup 20 >= [
         10 /mod [ tens ] dip
-        dup zero? [ drop ] [ "-" swap small-numbers 3append ] if
+        dup 0 = [ drop ] [ small-numbers "-" glue ] if
     ] [
-        dup zero? [ drop "" ] [ small-numbers ] if
+        dup 0 = [ drop "" ] [ small-numbers ] if
     ] if ;
 
 : 3digits>text ( n -- str )
@@ -59,15 +58,15 @@ SYMBOL: and-needed?
     [ " " glue ] unless-empty ;
 
 : append-with-conjunction ( str1 str2 -- newstr )
-    over length zero? [
+    over length 0 = [
         nip
     ] [
-        and-needed? get " and " ", " ? rot 3append
-        and-needed? off
+        swap and-needed? get " and " ", " ?
+        glue and-needed? off
     ] if ;
 
 : (recombine) ( str index seq -- newstr )
-    2dup nth zero? [
+    2dup nth 0 = [
         2drop
     ] [
         text-with-scale append-with-conjunction
index 3d9428adda4a5a2918a36cb96f3299eb34c3f994..515d7c7b993e4def7e215e3062ef65bd259e4a2c 100644 (file)
@@ -3,5 +3,5 @@
 USING: math math.constants ;
 IN: math.trig
 
-: deg>rad pi * 180 / ; inline
-: rad>deg 180 * pi / ; inline
+: deg>rad ( x -- y ) pi * 180 / ; inline
+: rad>deg ( x -- y ) 180 * pi / ; inline
index 92778194e3011c417cee13174fb27a1942149393..c1b656b6c8e486d07385e183dc08ccede6e985f7 100755 (executable)
@@ -3,7 +3,7 @@ namespaces opengl opengl.gl sequences ui ui.gadgets ui.gestures
 ui.render accessors combinators ;
 IN: opengl.demo-support
 
-: FOV 2.0 sqrt 1+ ; inline
+: FOV ( -- x ) 2.0 sqrt 1+ ; inline
 : MOUSE-MOTION-SCALE 0.5 ; inline
 : KEY-ROTATE-STEP 10.0 ; inline
 
index 82d6a31c6691c744a3ccaa83f6c844d5cd088f13..297fb69de377aa61b9c7b306cad24778802567a6 100644 (file)
@@ -33,8 +33,8 @@ TUPLE: end { ways integer } ;
 
 C: <block> block
 C: <end> end
-: <failure> 0 <end> ; inline
-: <success> 1 <end> ; inline
+: <failure> ( -- end ) 0 <end> ; inline
+: <success> ( -- end ) 1 <end> ; inline
 
 : failure? ( t -- ? ) ways>> 0 = ; inline
 
index b200c4d7354a2184509c01984ffac95c9f41eac4..5c819f6e697ea74d78b2f63b31cfaf2db29f9d6f 100644 (file)
@@ -25,6 +25,7 @@ M: tetris-gadget draw-gadget* ( gadget -- )
     [ <new-tetris> ] change-tetris ;
 
 tetris-gadget H{
+    { T{ button-down f f 1 }     [ request-focus ] }
     { T{ key-down f f "UP" }     [ tetris>> rotate-right ] }
     { T{ key-down f f "d" }      [ tetris>> rotate-left ] }
     { T{ key-down f f "f" }      [ tetris>> rotate-right ] }
index 3754e816a94cd638983790bdff643b40f728e86b..9686124813c6ca4536868da8b066cfae6954293e 100644 (file)
@@ -55,19 +55,28 @@ the same as C-cz)).
  - C-cz : switch to listener
  - C-co : cycle between code, tests and docs factor files
 
- - M-. : edit word at point in Emacs (also in listener)
+ - M-. : edit word at point in Emacs
  - M-TAB : complete word at point
  - C-cC-ev : edit vocabulary
 
  - C-cr, C-cC-er : eval region
  - C-M-r, C-cC-ee : eval region, extending it to definition boundaries
  - C-M-x, C-cC-ex : eval definition around point
- - C-ck, C-cC-ek : compile file
+ - C-ck, C-cC-ek : run file
 
  - C-cC-da : toggle autodoc mode
  - C-cC-dd : help for word at point
  - C-cC-ds : short help word at point
 
+* In the listener:
+
+ - TAB : complete word at point
+ - M-. : edit word at point in Emacs
+ - C-ca : toggle autodoc mode
+ - C-cv : edit vocabulary
+ - C-ch : help for word at point
+ - C-ck : run file
+
 * In the debugger (it pops up upon eval/compilation errors):
 
  - g : go to error
index bffa2aa0fc2c56b95ad5dc3b77d5fc9536d08299..6b89dbb008f0dd586ea147d9f167f3b8375e4770 100644 (file)
              (fuel-eval--send/wait '(:fuel* (fuel-get-vocabs) "fuel" (:array)))))))
   fuel-completion--vocabs)
 
-(defsubst fuel-completion--words (prefix vocabs)
-  (fuel-eval--retort-result
-   (fuel-eval--send/wait `(:fuel* (,prefix V{ ,@vocabs } fuel-get-words) t ,vocabs))))
+(defun fuel-completion--words (prefix vocabs)
+  (let ((vs (if vocabs (cons :array vocabs) 'f))
+        (us (or vocabs 't)))
+    (fuel-eval--retort-result
+     (fuel-eval--send/wait `(:fuel* (,prefix ,vs fuel-get-words) t ,us)))))
 
 \f
 ;;; Completions window handling, heavily inspired in slime's:
@@ -108,7 +110,7 @@ terminates a current completion."
 (defun fuel-completion--display-comp-list (completions base)
   (let ((savedp (fuel-completion--maybe-save-window-configuration)))
     (with-output-to-temp-buffer fuel-completion--comp-buffer
-      (display-completion-list completions)
+      (display-completion-list completions base)
       (let ((offset (- (point) 1 (length base))))
         (with-current-buffer standard-output
           (setq completion-base-size offset)
@@ -135,10 +137,11 @@ terminates a current completion."
 \f
 ;;; Completion functionality:
 
-(defsubst fuel-completion--word-list (prefix)
-  (let ((fuel-log--inhibit-p t))
-    (fuel-completion--words
-     prefix `("syntax" ,(fuel-syntax--current-vocab) ,@(fuel-syntax--usings)))))
+(defun fuel-completion--word-list (prefix)
+  (let* ((fuel-log--inhibit-p t)
+         (cv (fuel-syntax--current-vocab))
+         (vs (and cv `("syntax" ,cv ,@(fuel-syntax--usings)))))
+    (fuel-completion--words prefix vs)))
 
 (defun fuel-completion--complete (prefix)
   (let* ((words (fuel-completion--word-list prefix))
index 7c71cbf03c2e21841d81c64dde7cd9db25410840..f2dc760f94e58827bd56529b3a83373f5ece451d 100644 (file)
@@ -15,6 +15,8 @@
 
 (require 'fuel-eval)
 (require 'fuel-base)
+(require 'fuel-completion)
+(require 'fuel-syntax)
 (require 'comint)
 
 \f
@@ -68,10 +70,10 @@ buffer."
       (error "Could not run factor: image file %s not readable" image))
     (message "Starting FUEL listener ...")
     (comint-exec (fuel-listener--buffer) "factor"
-                 factor nil `("-run=fuel" ,(format "-i=%s" image)))
+                 factor nil `("-run=listener" ,(format "-i=%s" image)))
     (pop-to-buffer (fuel-listener--buffer))
     (goto-char (point-max))
-    (comint-send-string nil "USE: fuel \"\\nFUEL loaded\\n\" write\n")
+    (comint-send-string nil "USE: fuel \"FUEL loaded\\n\" write\n")
     (fuel-listener--wait-for-prompt 30)
     (message "FUEL listener up and running!")))
 
@@ -101,6 +103,17 @@ buffer."
       (goto-char (point-max))
       (unless seen (error "No prompt found!")))))
 
+\f
+;;; Completion support
+
+(defsubst fuel-listener--current-vocab () nil)
+(defsubst fuel-listener--usings () nil)
+
+(defun fuel-listener--setup-completion ()
+  (setq fuel-syntax--current-vocab-function 'fuel-listener--current-vocab)
+  (setq fuel-syntax--usings-function 'fuel-listener--usings)
+  (set-syntax-table fuel-syntax--syntax-table))
+
 \f
 ;;; Interface: starting fuel listener
 
@@ -126,13 +139,17 @@ buffer."
 \\{fuel-listener-mode-map}"
   (set (make-local-variable 'comint-prompt-regexp) fuel-listener--prompt-regex)
   (set (make-local-variable 'comint-prompt-read-only) t)
-  (setq fuel-listener--compilation-begin nil))
+  (fuel-listener--setup-completion))
 
 (define-key fuel-listener-mode-map "\C-cz" 'run-factor)
 (define-key fuel-listener-mode-map "\C-c\C-z" 'run-factor)
+(define-key fuel-listener-mode-map "\C-ca" 'fuel-autodoc-mode)
 (define-key fuel-listener-mode-map "\C-ch" 'fuel-help)
 (define-key fuel-listener-mode-map "\M-." 'fuel-edit-word-at-point)
+(define-key fuel-listener-mode-map "\C-cv" 'fuel-edit-vocabulary)
+(define-key fuel-listener-mode-map "\C-c\C-v" 'fuel-edit-vocabulary)
 (define-key fuel-listener-mode-map "\C-ck" 'fuel-run-file)
+(define-key fuel-listener-mode-map (kbd "TAB") 'fuel-completion--complete-symbol)
 
 \f
 (provide 'fuel-listener)
index a492a7b647f919ceec9ddbd96effd20744a97f94..936bded3a5299e874280a055ee3badfb85405f59 100644 (file)
 \f
 ;;; USING/IN:
 
-(defun fuel-syntax--current-vocab ()
+(make-variable-buffer-local
+ (defvar fuel-syntax--current-vocab-function 'fuel-syntax--find-in))
+
+(defsubst fuel-syntax--current-vocab ()
+  (funcall fuel-syntax--current-vocab-function))
+
+(defun fuel-syntax--find-in ()
   (let* ((vocab)
          (ip
           (save-excursion
               (setq vocab (format "%s.%s" vocab (downcase sub))))))))
     vocab))
 
-(defun fuel-syntax--usings ()
+(make-variable-buffer-local
+ (defvar fuel-syntax--usings-function 'fuel-syntax--find-usings))
+
+(defsubst fuel-syntax--usings ()
+  (funcall fuel-syntax--usings-function))
+
+(defun fuel-syntax--find-usings ()
   (save-excursion
     (let ((usings)
           (in (fuel-syntax--current-vocab)))
index 894948e44f9476dd3ce1177c688c34783223997c..90d4304eee1545837e91fcd008afb6a244be0548 100644 (file)
@@ -47,13 +47,13 @@ TUPLE: packet link id kind a1 a2 ;
 : HOLDBIT 4 ; inline
 
 : S_RUN 0 ;  inline
-: S_RUNPKT { PKTBIT } flags ; inline
-: S_WAIT { WAITBIT } flags ; inline
-: S_WAITPKT { WAITBIT PKTBIT } flags ; inline
-: S_HOLD { HOLDBIT } flags ; inline
-: S_HOLDPKT { HOLDBIT PKTBIT } flags ; inline
-: S_HOLDWAIT { HOLDBIT WAITBIT } flags ; inline
-: S_HOLDWAITPKT { HOLDBIT WAITBIT PKTBIT } flags ; inline
+: S_RUNPKT ( -- n ) { PKTBIT } flags ; inline
+: S_WAIT ( -- n ) { WAITBIT } flags ; inline
+: S_WAITPKT ( -- n ) { WAITBIT PKTBIT } flags ; inline
+: S_HOLD ( -- n ) { HOLDBIT } flags ; inline
+: S_HOLDPKT ( -- n ) { HOLDBIT PKTBIT } flags ; inline
+: S_HOLDWAIT ( -- n ) { HOLDBIT WAITBIT } flags ; inline
+: S_HOLDWAITPKT ( -- n ) { HOLDBIT WAITBIT PKTBIT } flags ; inline
 
 : task-tab-size 10 ; inline
 
index 4cf997a51534d2652259f970ae775173889c277d..30b61b5c0c527ec1dc82156ffa72cb701f9f4d28 100755 (executable)
@@ -5,44 +5,44 @@ in the public domain. */
 #define DS_REG r29
 
 DEF(void,primitive_fixnum_add,(void)):
-    lwz r3,0(DS_REG)
-    lwz r4,-4(DS_REG)
-    subi DS_REG,DS_REG,4
-    li r0,0
-    mtxer r0
-    addo. r5,r3,r4
-    bso add_overflow
-    stw r5,0(DS_REG)
-    blr
+       lwz r3,0(DS_REG)
+       lwz r4,-4(DS_REG)
+       subi DS_REG,DS_REG,4
+       li r0,0
+       mtxer r0
+       addo. r5,r3,r4
+       bso add_overflow
+       stw r5,0(DS_REG)
+       blr
 add_overflow:
        b MANGLE(overflow_fixnum_add)
 
 DEF(void,primitive_fixnum_subtract,(void)):
-    lwz r3,-4(DS_REG)
-    lwz r4,0(DS_REG)
-    subi DS_REG,DS_REG,4
-    li r0,0
-    mtxer r0
-    subfo. r5,r4,r3
+       lwz r3,-4(DS_REG)
+       lwz r4,0(DS_REG)
+       subi DS_REG,DS_REG,4
+       li r0,0
+       mtxer r0
+       subfo. r5,r4,r3
        bso sub_overflow
-    stw r5,0(DS_REG)
-    blr
+       stw r5,0(DS_REG)
+       blr
 sub_overflow:
-    b MANGLE(overflow_fixnum_subtract)
+       b MANGLE(overflow_fixnum_subtract)
 
 DEF(void,primitive_fixnum_multiply,(void)):
-    lwz r3,0(DS_REG)
-    lwz r4,-4(DS_REG)
-    subi DS_REG,DS_REG,4
-    srawi r3,r3,3
-    mullwo. r5,r3,r4
-    bso multiply_overflow
-    stw r5,0(DS_REG)
-    blr
+       lwz r3,0(DS_REG)
+       lwz r4,-4(DS_REG)
+       subi DS_REG,DS_REG,4
+       srawi r3,r3,3
+       mullwo. r5,r3,r4
+       bso multiply_overflow
+       stw r5,0(DS_REG)
+       blr
 multiply_overflow:
-    srawi r4,r4,3
-    b MANGLE(overflow_fixnum_multiply)
-    
+       srawi r4,r4,3
+       b MANGLE(overflow_fixnum_multiply)
+       
 /* Note that the XT is passed to the quotation in r11 */
 #define CALL_OR_JUMP_QUOT \
        lwz r11,9(r3)      /* load quotation-xt slot */ XX \
@@ -116,8 +116,9 @@ DEF(void,c_to_factor,(CELL quot)):
        SAVE_INT(r26,13)
        SAVE_INT(r27,14)
        SAVE_INT(r28,15)
+       SAVE_INT(r31,16)
 
-       SAVE_FP(f14,20)    /* save FPRs */
+       SAVE_FP(f14,20) /* save FPRs */
        SAVE_FP(f15,22)
        SAVE_FP(f16,24)
        SAVE_FP(f17,26)
@@ -141,7 +142,7 @@ DEF(void,c_to_factor,(CELL quot)):
        mr r3,r1           /* pass call stack pointer as an argument */
        bl MANGLE(save_callstack_bottom)
 
-       RESTORE_INT(r3,19)     /* restore quotation */
+       RESTORE_INT(r3,19)       /* restore quotation */
        CALL_QUOT
 
        RESTORE_FP(f31,54)
@@ -161,9 +162,10 @@ DEF(void,c_to_factor,(CELL quot)):
        RESTORE_FP(f17,26)
        RESTORE_FP(f16,24)
        RESTORE_FP(f15,22)
-       RESTORE_FP(f14,20)    /* save FPRs */
+       RESTORE_FP(f14,20)      /* save FPRs */
 
-       RESTORE_INT(r28,15)   /* restore GPRs */
+       RESTORE_INT(r31,16)   /* restore GPRs */
+       RESTORE_INT(r28,15)
        RESTORE_INT(r27,14)
        RESTORE_INT(r26,13)
        RESTORE_INT(r25,12)
index 227d44af77261f863c61dd95d6700542942b2cb6..c5a74e5b093566796fdf8d980ac068eeddc25cb3 100755 (executable)
@@ -20,13 +20,14 @@ typedef wchar_t F_CHAR;
 #define STRNCMP wcsncmp
 #define STRDUP _wcsdup
 
-#define CELL_FORMAT "%lu"
 
 #ifdef WIN64
+       #define CELL_FORMAT "%Iu"
         #define CELL_HEX_FORMAT "%Ix"
        #define CELL_HEX_PAD_FORMAT "%016Ix"
         #define FIXNUM_FORMAT "%Id"
 #else
+       #define CELL_FORMAT "%lu"
         #define CELL_HEX_FORMAT "%lx"
        #define CELL_HEX_PAD_FORMAT "%08lx"
         #define FIXNUM_FORMAT "%ld"