From d4d77b5100d93e928f746488069b267fc41ba04c Mon Sep 17 00:00:00 2001 From: REBOL Technologies Date: Tue, 20 Jul 2010 23:08:56 +0000 Subject: [PATCH] RT R3 A101 Hostkit for Win32 --- go.r | 26 +- info.txt | 4 +- lib/r3lib.dll | Bin 393216 -> 397312 bytes lib/r3lib.exp | Bin 1878 -> 1878 bytes lib/r3lib.lib | Bin 4122 -> 4122 bytes makefile | 13 +- src/agg/agg_compo.cpp | 4 +- src/agg/agg_graphics.h | 4 - src/agg/graphics.cpp | 30 +- src/boot/draw.r | 3 +- src/boot/version.r | 2 +- src/include/agg-draw.h | 9 +- src/include/ext-types.h | 59 +++ src/include/host-ext-draw.h | 4 +- src/include/host-ext-graphics.h | 4 +- src/include/host-lib.h | 6 +- src/include/reb-args.h | 2 +- src/include/reb-c.h | 5 +- src/include/reb-config.h | 8 +- src/include/reb-defs.h | 31 +- src/include/reb-device.h | 2 +- src/include/reb-event.h | 2 +- src/include/reb-evtypes.h | 4 +- src/include/reb-ext-lib.h | 291 +++++++++++- src/include/reb-ext.h | 70 +-- src/include/reb-file.h | 2 +- src/include/reb-filereq.h | 2 +- src/include/reb-gob.h | 15 +- src/include/reb-host.h | 11 +- src/include/reb-net.h | 2 +- src/include/reb-types.h | 161 ------- src/include/reb-value.h | 71 --- src/include/rebol-lib.h | 2 +- src/include/sys-net.h | 2 +- src/os/dev-dns.c | 2 +- src/os/dev-net.c | 2 +- src/os/host-args.c | 2 +- src/os/host-device.c | 2 +- src/os/host-ext-draw.c | 38 +- src/os/host-ext-graphics.c | 4 +- src/os/host-init.c | 762 ++++++++++++++++---------------- src/os/host-main.c | 24 +- src/os/host-stdio.c | 2 +- src/os/posix/dev-file.c | 2 +- src/os/posix/dev-stdio.c | 2 +- src/os/posix/host-lib.c | 2 +- src/os/posix/host-readline.c | 2 +- src/os/win32/dev-clipboard.c | 2 +- src/os/win32/dev-event.c | 2 +- src/os/win32/dev-file.c | 2 +- src/os/win32/dev-stdio.c | 2 +- src/os/win32/host-event.c | 2 +- src/os/win32/host-graphics.c | 12 +- src/os/win32/host-lib.c | 2 +- src/os/win32/host-window.c | 61 +-- 55 files changed, 934 insertions(+), 848 deletions(-) create mode 100644 src/include/ext-types.h delete mode 100644 src/include/reb-types.h delete mode 100644 src/include/reb-value.h diff --git a/go.r b/go.r index 59d9899..f3dede3 100644 --- a/go.r +++ b/go.r @@ -1,17 +1,15 @@ -REBOL [Title: "Host-Kit Graphics: Basic GOB Compositing Test"] - -view/no-wait main: make gob! [color: black offset: 0x0 size: 500x500] -;do -[ - append main make gob! [ - offset: 0x0 - size: 500x500 - draw: [pen 255.0.0 circle 200x200 200.0 200.0] - ] - show main - wait 100 +REBOL [ + Title: "Host-Kit Graphics: Basic GOB Compositing Test" + Version: 1.0.1 + Author: "Carl Sassenrath" + Notes: { + A101: PAIRs are now floating point, and commands like CIRCLE + can pass a pair for second argument. + } ] +win: view/no-wait main: make gob! [color: black offset: 0x0 size: 500x500] + to-draw: func [block] [bind reduce block import 'draw] units: 32 @@ -39,7 +37,7 @@ loop 100 [ draw: to-draw [ 'pen random 255.255.255 'fill-pen random 255.255.255.255 - 'circle sz sz/x * 98% sz/y * 98% + 'circle sz sz * 98% ] offset: random 300x300 size: sz * 2 @@ -79,3 +77,5 @@ loop 100 [ show main wait pause ] + +unview win diff --git a/info.txt b/info.txt index 84d152b..af02e11 100644 --- a/info.txt +++ b/info.txt @@ -1,8 +1,8 @@ REBOL 3 Host-Kit Source Distribution From REBOL Technologies in Ukiah, California - Version: 2.100.100.0.0 (alpha) - Updated: 12-Jul-2010/13:33:45-7:00 + Version: 2.100.101.0.0 (alpha) + Updated: 20-Jul-2010/16:04:58-7:00 The purpose of the R3 Host-Kit is to provide developers with a method of building custom versions of REBOL, including built-in extension modules. diff --git a/lib/r3lib.dll b/lib/r3lib.dll index 8c84aebdf428d51330b6085360d458b2e8dd4a28..dc805c553301c1a114c1be639f05eaeef92f0407 100644 GIT binary patch delta 111951 zcmb5X3tW`N7dO81?4m0yvdBf`A}Fh(prUv|K?Ov_8!jNbUO~$XZDyvsYIy-%QI{vY zJ?dzhX;@lnSyXCQ5EZqXm%Nph-57#&1IcNGm(i@uW#^d#N#!@^hD1H;th}Y zVvSj8%i8-!z3Qbg19R(cFHN$tS_=1yYNB~Ma&?%?A20f=y!OgcrTt|4Y$m zs=CaYGX3#~H5%_|B%^puJmSlhi=?H#h9fCVI+7wyK9ZuHq8N?AnZ8Yo&cxRCCi|(n zH6`w~9g@G8-3dAdn&>8B~~ubCY#`+j%J%Q#sMibIavqpWsmA|56q)J1Ol?v^sc zI7({XL^))P3T)oQXpvVhK~|2M+y~J8kY8_{(7d;mY2+gX`QvI<5z52*aKl(dIU*ANWfevsK-IT#Gu3vWA;toQFbcH9bJxm8nxF+|XzW z@@rPz|J$|`RWe8w6j8EGYip`DjZ&Jn7#3ePMXQmop`6m24zGOYp}-m&==KPb@cYYn z@YdX>v9WBmEioMg4i~p@NQiE?=*p^;jsZ#1`QysefOV38Yvu2Na7lYy2@9Mf&Hr9e z0>?_9{;vEQ7*=%om=|@7rs6X^xO~6EFZhss>2({ul^%0MITJOG=t7rPqft){)M&O5 zlJk%*rGg$3s%rZ9(!=aavff#xs~{{iiO$w8Th2_+Hmg}v?&BEm<9M2&Lqkh!y9lHd zXMLXvdYI)~_$w9m){`2vvksZc-k=woogl(N-}yFC3W8fUdMgSJZ-@4iuWcg;TcYfr zQhiw`57o*3+Jkbi*~a8Fomu^|P^k*;B()7wt_GJ$>qC`!E&H_eh>0(WiR~|0SCVkd z<%`Zxj<)O~Sw<`MEn9ay(vN8h4>bcnPxq3*kMT;6Ng53?PPMd{)lwHa00O5B2$?_~ zuq9;OBP6L;Lm-kGvpYLp9%a(Gg7#D5q41hjxfW}J+m`6+cLFJ{etX658{)T0{2s!u zItTJ+3#_8jV$rz<4giaM7sRyKcAoN)qa6?0{E$4@sj&79e*t zMwS|sLG{yMpj4pojjj@iHj1N!{hjgXTD*!91cc}xqigl{`zfxHt$0?GW@60BLFds! zwO&+j8p3j#N!DjuZIZfp=sl7Z7m?{al;TR$sRkV|Ym=4Q(715I^rC{y>WoydZ?zUK zgOCVfieFft!2}>Le*+NN>OA~94@G%O0+dG0IH%R9)qlI)9>#0aW|Gp_MwO^7F2*Ch zy84|zrmPH$2%KV@Y?BJNUeg)Xc12V-w5?JV)>1-rA*>twN%0AvS~PzYMxlD(skR!; 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

;p-xlmf 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 O3|C3{$FE2i)c*rX6FX`E delta 109864 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 qq2fPz4KU1&z zCl_)HgT>pqEs(?^YCj{XHQ<4W#qt=z)fwagg_rounded_rect(p1->x, p1->y, p2->x, p2->y, r); + ((agg_graphics*)gr)->agg_rounded_rect(p1.x, p1.y, p2.x, p2.y, r); } else { - ((agg_graphics*)gr)->agg_box(p1->x, p1->y, p2->x, p2->y); + ((agg_graphics*)gr)->agg_box(p1.x, p1.y, p2.x, p2.y); } } - extern "C" void agg_circle(void* gr, REBPAR* p1, REBDEC rx, REBDEC ry) + extern "C" void agg_circle(void* gr, REBXYF p, REBXYF r) { - ((agg_graphics*)gr)->agg_ellipse(p1->x, p1->y, rx, ry); + ((agg_graphics*)gr)->agg_ellipse(p.x, p.y, r.x, r.y); + } + + extern "C" void agg_begin_poly (void* gr, REBXYF p) + { + ((agg_graphics*)gr)->agg_begin_poly(p.x, p.y); + } + + extern "C" void agg_add_vertex (void* gr, REBXYF p) + { + ((agg_graphics*)gr)->agg_add_vertex(p.x, p.y); } extern "C" void agg_pen(void* gr, REBYTE* col, REBSER* img) @@ -48,16 +58,6 @@ namespace agg } - extern "C" void agg_begin_poly (void* gr, REBDEC x, REBDEC y) - { - ((agg_graphics*)gr)->agg_begin_poly(x, y); - } - - extern "C" void agg_add_vertex (void* gr, REBDEC x, REBDEC y) - { - ((agg_graphics*)gr)->agg_add_vertex(x, y); - } - #ifdef ndef extern "C" REBINT Draw_Image(REBSER *image, REBSER *block) diff --git a/src/boot/draw.r b/src/boot/draw.r index 32c6aeb..ac199f6 100644 --- a/src/boot/draw.r +++ b/src/boot/draw.r @@ -29,8 +29,7 @@ lines: command [ circle: command [ "Draw a circle or ellipse." origin [pair!] - radius-x [decimal!] - radius-y [decimal!] + radius [pair!] ] pen: command [ diff --git a/src/boot/version.r b/src/boot/version.r index 91a9435..7841b1f 100644 --- a/src/boot/version.r +++ b/src/boot/version.r @@ -1 +1 @@ -2.100.100.3.1 \ No newline at end of file +2.100.101.3.1 \ No newline at end of file diff --git a/src/include/agg-draw.h b/src/include/agg-draw.h index 3aa42ff..8ac166b 100644 --- a/src/include/agg-draw.h +++ b/src/include/agg-draw.h @@ -3,13 +3,14 @@ extern REBINT Draw_Image(REBSER *image, REBSER *block); extern void agg_get_size(void* gr, REBPAR* p); -extern void agg_add_vertex (void* gr, REBDEC x, REBDEC y); +extern void agg_begin_poly (void* gr, REBXYF p); +extern void agg_add_vertex (void* gr, REBXYF p); +extern void agg_box(void* gr, REBXYF p1, REBXYF p2, REBDEC r); +extern void agg_circle(void* gr, REBXYF p, REBXYF r); + extern void agg_anti_alias(void* gr, REBINT mode); extern void agg_arc(void* gr, REBPAR* c, REBPAR* r, REBDEC ang1, REBDEC ang2, REBINT closed); extern void agg_arrow(void* gr, REBCHR* c, REBPAR* ht); -extern void agg_begin_poly (void* gr, REBDEC x, REBDEC y); -extern void agg_box(void* gr, REBPAR* p1, REBPAR* p2, REBDEC r); -extern void agg_circle(void* gr, REBPAR* p1, REBDEC rx, REBDEC ry); extern void agg_clip(void* gr, REBPAR* p1, REBPAR* p2); extern void agg_curve3(void* gr, REBPAR* p1, REBPAR* p2, REBPAR* p3); extern void agg_curve4(void* gr, REBPAR* p1, REBPAR* p2, REBPAR* p3, REBPAR* p4); diff --git a/src/include/ext-types.h b/src/include/ext-types.h new file mode 100644 index 0000000..690cc89 --- /dev/null +++ b/src/include/ext-types.h @@ -0,0 +1,59 @@ +/*********************************************************************** +** +** REBOL 3.0 "Invasion" +** Copyright 2010 REBOL Technologies +** All rights reserved. +** +************************************************************************ +** +** Title: Extension Types (Isolators) +** Build: A101 +** Date: 20-Jul-2010/16:01:51-7:00 +** File: ext-types.h +** +** AUTO-GENERATED FILE - Do not modify. (From: make-boot.r) +** +***********************************************************************/ + + +enum REBOL_Ext_Types +{ + RXT_END = 0, // 0 + RXT_UNSET, // 1 + RXT_NONE, // 2 + RXT_HANDLE, // 3 + RXT_LOGIC = 4, // 4 + RXT_INTEGER, // 5 + RXT_DECIMAL, // 6 + RXT_PERCENT, // 7 + RXT_CHAR = 10, // 8 + RXT_PAIR, // 9 + RXT_TUPLE, // 10 + RXT_TIME, // 11 + RXT_DATE, // 12 + RXT_WORD = 16, // 13 + RXT_SET_WORD, // 14 + RXT_GET_WORD, // 15 + RXT_LIT_WORD, // 16 + RXT_REFINEMENT, // 17 + RXT_STRING = 24, // 18 + RXT_FILE, // 19 + RXT_EMAIL, // 20 + RXT_URL, // 21 + RXT_TAG, // 22 + RXT_ISSUE, // 23 + RXT_BLOCK = 32, // 24 + RXT_PAREN, // 25 + RXT_PATH, // 26 + RXT_SET_PATH, // 27 + RXT_GET_PATH, // 28 + RXT_LIT_PATH, // 29 + RXT_BINARY = 40, // 30 + RXT_BITSET, // 31 + RXT_IMAGE, // 32 + RXT_VECTOR, // 33 + RXT_GOB = 47, // 34 + RXT_OBJECT = 48, // 35 + RXT_MODULE, // 36 + RXT_MAX +}; diff --git a/src/include/host-ext-draw.h b/src/include/host-ext-draw.h index 129ce6f..5b5c3f5 100644 --- a/src/include/host-ext-draw.h +++ b/src/include/host-ext-draw.h @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: REBOL Draw Graphics -** Build: A100 -** Date: 12-Jul-2010/13:29:57-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:05:05-7:00 ** File: host-ext-draw ** ** AUTO-GENERATED FILE - Do not modify. (From: make-host-ext.r) diff --git a/src/include/host-ext-graphics.h b/src/include/host-ext-graphics.h index 997b9d2..8274e11 100644 --- a/src/include/host-ext-graphics.h +++ b/src/include/host-ext-graphics.h @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: REBOL Graphics -** Build: A100 -** Date: 12-Jul-2010/13:29:57-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:05:05-7:00 ** File: host-ext-graphics ** ** AUTO-GENERATED FILE - Do not modify. (From: make-host-ext.r) diff --git a/src/include/host-lib.h b/src/include/host-lib.h index e09a5ec..972b88d 100644 --- a/src/include/host-lib.h +++ b/src/include/host-lib.h @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: Host Access Library -** Build: A100 -** Date: 12-Jul-2010/13:26:27-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:01:51-7:00 ** File: host-lib.h ** ** AUTO-GENERATED FILE - Do not modify. (From: make-os-ext.r) @@ -16,7 +16,7 @@ ***********************************************************************/ -#define HOST_LIB_VER 100 +#define HOST_LIB_VER 101 #define HOST_LIB_SUM 5782 #define HOST_LIB_SIZE 30 diff --git a/src/include/reb-args.h b/src/include/reb-args.h index 3e82683..9b164e1 100644 --- a/src/include/reb-args.h +++ b/src/include/reb-args.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/include/reb-c.h b/src/include/reb-c.h index 060ea4b..cbfcada 100644 --- a/src/include/reb-c.h +++ b/src/include/reb-c.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ @@ -79,6 +79,7 @@ typedef i64 REBI64; // 64 bit integer typedef u64 REBU64; // 64 bit unsigned integer typedef char REBOOL; // 8 bit flag (for struct usage) typedef unsigned int REBFLG; // 32 bit flag (for cpu efficiency) +typedef float REBD32; // 32 bit decimal typedef double REBDEC; // 64 bit decimal #ifdef HAS_LONG_DOUBLE @@ -251,3 +252,5 @@ typedef void(*CFUNC)(void *); #endif #define MAKE_STR(n) (REBCHR*)(malloc((n) * sizeof(REBCHR))) // OS chars! + +#define ROUND_TO_INT(d) (REBINT)(floor((d) + 0.5)) diff --git a/src/include/reb-config.h b/src/include/reb-config.h index f5e4301..b67e126 100644 --- a/src/include/reb-config.h +++ b/src/include/reb-config.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ @@ -103,6 +103,12 @@ #define HAS_LONG_DOUBLE #endif +#ifdef TO_OPENBSD +#define ENDIAN_LITTLE +#define HAS_LL_CONSTS +#define HAS_ECVT +#endif + #ifdef TO_OBSD // OpenBSD #define COPY_STR(d,s,m) strlcpy(d,s,m) #define JOIN_STR(d,s,m) strlcat(d,s,m) diff --git a/src/include/reb-defs.h b/src/include/reb-defs.h index f8003b3..029bed1 100644 --- a/src/include/reb-defs.h +++ b/src/include/reb-defs.h @@ -1,13 +1,13 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ ** ** Title: Miscellaneous structures and definitions -** Date: 1-Dec-2009 +** Date: 16-July-2010 ** File: reb_defs.h ** ** Note: This file is used by internal and external C code. It @@ -15,16 +15,27 @@ ** ***********************************************************************/ -#ifndef FULL_DEFS +#ifndef REB_DEFS_H // due to sequences within the lib build itself +#define REB_DEFS_H + +#ifndef AS_LIB typedef void *REBSER; -//typedef void REBGOB; +typedef void *REBOBJ; #endif -// X/Y coordinate pair: -typedef struct rebol_pair { +// X/Y coordinate pair as floats: +typedef struct rebol_xy_float { + float x; + float y; +} REBXYF; + +// X/Y coordinate pair as integers: +typedef struct rebol_xy_int { int x; int y; -} REBPAR; +} REBXYI; + +#define REBPAR REBXYI // temporary until all sources are converted // Standard date and time: typedef struct rebol_dat { @@ -36,7 +47,7 @@ typedef struct rebol_dat { int zone; } REBOL_DAT; // not same as REBDAT -// OS metrics: +// OS metrics: (not used as of A100!) typedef struct rebol_met { int len; // # entries in this table REBPAR screen_size; @@ -45,4 +56,6 @@ typedef struct rebol_met { REBPAR border_fixed; REBPAR work_origin; REBPAR work_size; -} REBOL_OS_METRICS; +} X_REBOL_OS_METRICS; + +#endif diff --git a/src/include/reb-device.h b/src/include/reb-device.h index 7a2f588..2c0c5bb 100644 --- a/src/include/reb-device.h +++ b/src/include/reb-device.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/include/reb-event.h b/src/include/reb-event.h index bf88ef9..83e1835 100644 --- a/src/include/reb-event.h +++ b/src/include/reb-event.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/include/reb-evtypes.h b/src/include/reb-evtypes.h index b477f65..e23eca0 100644 --- a/src/include/reb-evtypes.h +++ b/src/include/reb-evtypes.h @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: Event Types -** Build: A100 -** Date: 12-Jul-2010/13:26:27-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:01:51-7:00 ** File: reb-evtypes.h ** ** AUTO-GENERATED FILE - Do not modify. (From: make-boot.r) diff --git a/src/include/reb-ext-lib.h b/src/include/reb-ext-lib.h index b5c0c81..5ba1879 100644 --- a/src/include/reb-ext-lib.h +++ b/src/include/reb-ext-lib.h @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: REBOL Extension API -** Build: A100 -** Date: 12-Jul-2010/13:17:34-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:01:51-7:00 ** File: reb-ext-lib.r ** ** AUTO-GENERATED FILE - Do not modify. (From: make-ext-lib.r) @@ -20,15 +20,20 @@ typedef struct rebol_ext_api { int version; void *(*make_block)(u32 size); - void *(*make_string)(u32 size, int uni); - u32 *(*map_words)(REBSER *ser); + void *(*make_string)(u32 size, int unicode); + int (*get_string)(REBSER *series, u32 index, void **str); + u32 (*map_word)(REBYTE *string); + u32 *(*map_words)(REBSER *series); + REBYTE *(*word_string)(u32 word); u32 (*find_word)(u32 *words, u32 word); - int (*series_info)(REBSER *ser, REBCNT what); - int (*get_char)(REBSER *ser, u32 index); - u32 (*set_char)(REBSER *ser, u32 index, u32 chr); - int (*get_value)(REBSER *ser, u32 index, RXIARG *val); - int (*set_value)(REBSER *ser, u32 index, RXIARG val, int type); - int (*get_string)(REBSER *ser, u32 index, void **str); + int (*series_info)(REBSER *series, REBCNT what); + int (*get_char)(REBSER *series, u32 index); + u32 (*set_char)(REBSER *series, u32 index, u32 chr); + int (*get_value)(REBSER *series, u32 index, RXIARG *val); + int (*set_value)(REBSER *series, u32 index, RXIARG val, int type); + u32 *(*words_of_object)(REBSER *obj); + int (*get_field)(REBSER *obj, u32 word, RXIARG *val); + int (*set_field)(REBSER *obj, u32 word, RXIARG val, int type); } RXILIB; //** Included by extension ******************************************** @@ -50,43 +55,289 @@ RXILIB *RXI; // Passed to the Init() function // Use these macros to access the API library functions: #define RXI_MAKE_BLOCK(a) RXI->make_block(a) +/* +** void *RXI_make_block(u32 size) +** +** Allocate a new block. +** +** Returns: +** A pointer to a block series. +** Arguments: +** size - the length of the block. The system will add one extra +** for the end-of-block marker. +** Notes: +** Blocks are allocated with REBOL's internal memory manager. +** Internal structures may change, so NO assumptions should be made! +** Blocks are automatically garbage collected if there are +** no references to them from REBOL code (C code does nothing.) +** However, you can lock blocks to prevent deallocation. (?? default) +*/ + #define RXI_MAKE_STRING(a,b) RXI->make_string(a,b) +/* +** void *RXI_make_string(u32 size, int unicode) +** +** Allocate a new string. +** +** Returns: +** A pointer to a string series. +** Arguments: +** size - the length of the string. The system will add one extra +** for a null terminator (not strictly required, but good for C.) +** unicode - set FALSE for ASCII/Latin1 strings, set TRUE for Unicode. +** Notes: +** Strings can be REBYTE or REBCHR sized (depends on R3 config.) +** Strings are allocated with REBOL's internal memory manager. +** Internal structures may change, so NO assumptions should be made! +** Strings are automatically garbage collected if there are +** no references to them from REBOL code (C code does nothing.) +** However, you can lock strings to prevent deallocation. (?? default) +*/ + +#define RXI_GET_STRING(a,b,c) RXI->get_string(a,b,c) +/* +** int RXI_get_string(REBSER *series, u32 index, void **str) +** +** Obtain a pointer into a string (bytes or unicode). +** +** Returns: +** The length and type of string. When len > 0, string is unicode. +** When len < 0, string is bytes. +** Arguments: +** series - string series pointer +** index - index from beginning (zero-based) +** str - pointer to first character +** Notes: +** Strings are allowed to move in memory. Therefore, you will want +** to make a copy of the string if needed. +*/ + +#define RXI_MAP_WORD(a) RXI->map_word(a) +/* +** u32 RXI_map_word(REBYTE *string) +** +** Given a word as a string, return its word identifier. +** +** Returns: +** The word identifier that matches the string. +** Arguments: +** string - a valid word as a UTF-8 encoded string. +** Note: +** Word identifiers are persistent, and you can use them anytime. +** If the word is new (not found in master symbol table) +** it will be added and the new word identifier is returned. +*/ + #define RXI_MAP_WORDS(a) RXI->map_words(a) +/* +** u32 *RXI_map_words(REBSER *series) +** +** Given a block of word values, return an array of word ids. +** +** Returns: +** An array of word identifiers (integers), zero terminated. The index of +** each id matches that of its word. +** Arguments: +** series - block of words as values (from REBOL blocks, not strings.) +** Note: +** Word identifiers are persistent, and you can use them anytime. +** The array is allocated with OS_MAKE and you can OS_FREE it any time. +*/ + +#define RXI_WORD_STRING(a) RXI->word_string(a) +/* +** REBYTE *RXI_word_string(u32 word) +** +** Return a string related to a given word identifier. +** +** Returns: +** A copy of the word string, null terminated. +** Arguments: +** word - a word identifier +** Note: +** The result is a null terminated copy of the name for your own use. +** The string is always UTF-8 encoded (chars > 127 are encoded.) +** In this API, word identifiers are always canonical. Therefore, +** the returned string may have different spelling/casing than expected. +** The string is allocated with OS_MAKE and you can OS_FREE it any time. +*/ + #define RXI_FIND_WORD(a,b) RXI->find_word(a,b) +/* +** u32 RXI_find_word(u32 *words, u32 word) +** +** Given an array of word ids, return the index of the given word. +** +** Returns: +** The index of the given word or zero. (??) +** Arguments: +** words - an array like that returned from MAP_WORDS +** word - a word id +** Note: +** Zeroth word? remove this funct? +*/ + #define RXI_SERIES_INFO(a,b) RXI->series_info(a,b) +/* +** int RXI_series_info(REBSER *series, REBCNT what) +** +** Get series information. +** +** Returns: +** Returns information related to a series. +** Arguments: +** series - any series pointer (string or block) +** what - indicates what information to return: +** RXI_INFO_TAIL: the length of the series +** RXI_INFO_SIZE: total size of series (in elements) +** RXI_INFO_WIDE: the width in bytes of each element +** RXI_INFO_LEFT: number of unallocated elements available +*/ + #define RXI_GET_CHAR(a,b) RXI->get_char(a,b) +/* +** int RXI_get_char(REBSER *series, u32 index) +** +** Get a character from byte or unicode string. +** +** Returns: +** A Unicode character point from string. If index is +** at or past the tail, a -1 is returned. +** Arguments: +** series - string series pointer +** index - zero based index of character +** Note: +** This function works for byte and unicoded strings. +** The maximum size of a Unicode char is determined by +** R3 build options. The default is 16 bits. +*/ + #define RXI_SET_CHAR(a,b,c) RXI->set_char(a,b,c) +/* +** u32 RXI_set_char(REBSER *series, u32 index, u32 chr) +** +** Set a character into a byte or unicode string. +** +** Returns: +** The index passed as an argument. +** Arguments: +** series - string series pointer +** index - where to store the character. If past the tail, +** the string will be auto-expanded by one and the char +** will be appended. +*/ + #define RXI_GET_VALUE(a,b,c) RXI->get_value(a,b,c) +/* +** int RXI_get_value(REBSER *series, u32 index, RXIARG *val) +** +** Get a value from a block. +** +** Returns: +** Datatype of value or zero if index is past tail. +** Arguments: +** series - block series pointer +** index - word identifier (integer) +** val - gets set to the value of the field +*/ + #define RXI_SET_VALUE(a,b,c,d) RXI->set_value(a,b,c,d) -#define RXI_GET_STRING(a,b,c) RXI->get_string(a,b,c) +/* +** int RXI_set_value(REBSER *series, u32 index, RXIARG val, int type) +** +** Set a value in a block. +** +** Returns: +** TRUE if index past end and value was appended to tail of block. +** Arguments: +** series - block series pointer +** index - word identifier (integer) +** val - new value for field +** type - datatype of value +*/ + +#define RXI_WORDS_OF_OBJECT(a) RXI->words_of_object(a) +/* +** u32 *RXI_words_of_object(REBSER *obj) +** +** Returns information about the object. +** +** Returns: +** Returns an array of words used as fields of the object. +** Arguments: +** obj - object pointer (e.g. from RXA_OBJECT) +** Note: +** Returns a word array similar to MAP_WORDS(). +** The array is allocated with OS_MAKE and you can OS_FREE it any time. +*/ + +#define RXI_GET_FIELD(a,b,c) RXI->get_field(a,b,c) +/* +** int RXI_get_field(REBSER *obj, u32 word, RXIARG *val) +** +** Get a field value (context variable) of an object. +** +** Returns: +** Datatype of value or zero if word is not found in the object. +** Arguments: +** obj - object pointer (e.g. from RXA_OBJECT) +** word - word identifier (integer) +** val - gets set to the value of the field +*/ + +#define RXI_SET_FIELD(a,b,c,d) RXI->set_field(a,b,c,d) +/* +** int RXI_set_field(REBSER *obj, u32 word, RXIARG val, int type) +** +** Set a field (context variable) of an object. +** +** Returns: +** The type arg, or zero if word not found in object or if field is protected. +** Arguments: +** obj - object pointer (e.g. from RXA_OBJECT) +** word - word identifier (integer) +** val - new value for field +** type - datatype of value +*/ + #else //** Included by REBOL ************************************************ extern void *RXI_make_block(u32 size); -extern void *RXI_make_string(u32 size, int uni); -extern u32 *RXI_map_words(REBSER *ser); +extern void *RXI_make_string(u32 size, int unicode); +extern int RXI_get_string(REBSER *series, u32 index, void **str); +extern u32 RXI_map_word(REBYTE *string); +extern u32 *RXI_map_words(REBSER *series); +extern REBYTE *RXI_word_string(u32 word); extern u32 RXI_find_word(u32 *words, u32 word); -extern int RXI_series_info(REBSER *ser, REBCNT what); -extern int RXI_get_char(REBSER *ser, u32 index); -extern u32 RXI_set_char(REBSER *ser, u32 index, u32 chr); -extern int RXI_get_value(REBSER *ser, u32 index, RXIARG *val); -extern int RXI_set_value(REBSER *ser, u32 index, RXIARG val, int type); -extern int RXI_get_string(REBSER *ser, u32 index, void **str); +extern int RXI_series_info(REBSER *series, REBCNT what); +extern int RXI_get_char(REBSER *series, u32 index); +extern u32 RXI_set_char(REBSER *series, u32 index, u32 chr); +extern int RXI_get_value(REBSER *series, u32 index, RXIARG *val); +extern int RXI_set_value(REBSER *series, u32 index, RXIARG val, int type); +extern u32 *RXI_words_of_object(REBSER *obj); +extern int RXI_get_field(REBSER *obj, u32 word, RXIARG *val); +extern int RXI_set_field(REBSER *obj, u32 word, RXIARG val, int type); RXILIB Ext_Lib = { RXI_VERSION, RXI_make_block, RXI_make_string, + RXI_get_string, + RXI_map_word, RXI_map_words, + RXI_word_string, RXI_find_word, RXI_series_info, RXI_get_char, RXI_set_char, RXI_get_value, RXI_set_value, - RXI_get_string, + RXI_words_of_object, + RXI_get_field, + RXI_set_field, }; #endif diff --git a/src/include/reb-ext.h b/src/include/reb-ext.h index 56393c4..c809f2e 100644 --- a/src/include/reb-ext.h +++ b/src/include/reb-ext.h @@ -1,65 +1,40 @@ /*********************************************************************** ** -** REBOL 3.0 Extensions 1.0 +** REBOL 3.0 "Invasion" +** Copyright 2010 REBOL Technologies +** All rights reserved. +** +************************************************************************ +** +** Title: Extensions Include File +** Build: A100 +** Date: 17-Jul-2010/14:47:24-7:00 +** File: reb-ext.h ** ***********************************************************************/ -// Supported datatypes (isolated - relative to extensions, not kernel) -enum rebol_ext_types -{ - RXT_END = 0, // 0 - RXT_UNSET, // 1 - RXT_NONE, // 2 - RXT_HANDLE, // 3 - RXT_LOGIC = 4, // 4 - RXT_INTEGER, // 5 - RXT_DECIMAL, // 6 - RXT_PERCENT, // 7 - RXT_CHAR = 10, // 8 - RXT_PAIR, // 9 - RXT_TUPLE, // 10 - RXT_TIME, // 11 - RXT_DATE, // 12 - RXT_WORD = 16, // 13 - RXT_SET_WORD, // 14 - RXT_GET_WORD, // 15 - RXT_LIT_WORD, // 16 - RXT_REFINEMENT, // 17 - RXT_GOB = 23, - RXT_STRING = 24, // 18 - RXT_FILE, // 19 - RXT_EMAIL, // 20 - RXT_URL, // 21 - RXT_TAG, // 22 - RXT_ISSUE, // 23 - RXT_BLOCK = 32, // 24 - RXT_PAREN, // 25 - RXT_PATH, // 26 - RXT_SET_PATH, // 27 - RXT_GET_PATH, // 28 - RXT_LIT_PATH, // 29 - RXT_BINARY = 40, // 30 - RXT_BITSET, // 31 - RXT_IMAGE, // 32 - RXT_VECTOR, // 33 - RXT_MAX -}; +#include "reb-defs.h" +#include "ext-types.h" // Value structure (for passing args to and from): typedef union rxi_arg_val { - i64 int64; + void *addr; + i64 int64; double dec64; + REBXYF pair; REBYTE bytes[8]; struct { i32 int32a; i32 int32b; }; + struct { + REBD32 dec32a; + REBD32 dec32b; + }; struct { u32 index; void *series; }; - REBPAR pair; - void *handle; } RXIARG; // Command function call frame: @@ -83,12 +58,12 @@ typedef int (*RXICAL)(int cmd, RXIFRM *args, void *data); #define RXA_DATE(f,n) (RXA_ARG(f,n).int32a) #define RXA_WORD(f,n) (RXA_ARG(f,n).int32a) #define RXA_PAIR(f,n) (RXA_ARG(f,n).pair) -#define RXA_PAIR_X(f,n) (RXA_ARG(f,n).int32a) -#define RXA_PAIR_Y(f,n) (RXA_ARG(f,n).int32b) #define RXA_TUPLE(f,n) (RXA_ARG(f,n).bytes) #define RXA_SERIES(f,n) (RXA_ARG(f,n).series) #define RXA_INDEX(f,n) (RXA_ARG(f,n).index) -#define RXA_HANDLE(f,n) (RXA_ARG(f,n).handle) +#define RXA_OBJECT(f,n) (RXA_ARG(f,n).addr) +#define RXA_MODULE(f,n) (RXA_ARG(f,n).addr) +#define RXA_HANDLE(f,n) (RXA_ARG(f,n).addr) // Command function return values: @@ -105,6 +80,7 @@ enum rxi_return { RXR_NO_COMMAND, }; +// Used with RXI_SERIES_INFO: enum { RXI_INFO_TAIL, // series tail index RXI_INFO_SIZE, // size of series (in units) diff --git a/src/include/reb-file.h b/src/include/reb-file.h index 6f4da91..20af8c5 100644 --- a/src/include/reb-file.h +++ b/src/include/reb-file.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/include/reb-filereq.h b/src/include/reb-filereq.h index a239ca9..479a7db 100644 --- a/src/include/reb-filereq.h +++ b/src/include/reb-filereq.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/include/reb-gob.h b/src/include/reb-gob.h index eafe999..7a7af0a 100644 --- a/src/include/reb-gob.h +++ b/src/include/reb-gob.h @@ -97,10 +97,10 @@ struct rebol_gob { // size: 64 bytes! REBSER *content; // content value (block, string, color) REBSER *data; // user defined data - REBPAR offset; // location - REBPAR size; - REBPAR old_offset; // prior location - REBPAR old_size; // prior size + REBXYF offset; // location + REBXYF size; + REBXYF old_offset; // prior location + REBXYF old_size; // prior size }; #define GOB_X(g) ((g)->offset.x) @@ -108,6 +108,11 @@ struct rebol_gob { // size: 64 bytes! #define GOB_W(g) ((g)->size.x) #define GOB_H(g) ((g)->size.y) +#define GOB_X_INT(g) ROUND_TO_INT((g)->offset.x) +#define GOB_Y_INT(g) ROUND_TO_INT((g)->offset.y) +#define GOB_W_INT(g) ROUND_TO_INT((g)->size.x) +#define GOB_H_INT(g) ROUND_TO_INT((g)->size.y) + #define GOB_XO(g) ((g)->old_offset.x) #define GOB_YO(g) ((g)->old_offset.y) #define GOB_WO(g) ((g)->old_size.x) @@ -140,7 +145,7 @@ struct rebol_gob { // size: 64 bytes! #define GOB_CONTENT(g) ((g)->content) // Control dependencies on series structures: -#ifdef FULL_DEFS +#ifdef AS_LIB #define GOB_STRING(g) SERIES_DATA(GOB_CONTENT(g)) #define GOB_TAIL(g) SERIES_TAIL((g)->pane) #define GOB_HEAD(g) ((REBGOB **)(SERIES_DATA(GOB_PANE(g)))) diff --git a/src/include/reb-host.h b/src/include/reb-host.h index 8fd7cfa..031d6d2 100644 --- a/src/include/reb-host.h +++ b/src/include/reb-host.h @@ -1,13 +1,13 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ ** ** Title: Include files for hosting -** Date: 1-Dec-2009 +** Date: 20-July-2010 ** File: reb-host.h ** ***********************************************************************/ @@ -15,7 +15,7 @@ #include "reb-config.h" #include "reb-c.h" -#include "reb-defs.h" +#include "reb-ext.h" // includes reb-defs.h #include "reb-args.h" #include "reb-device.h" #include "reb-file.h" @@ -24,9 +24,4 @@ #include "reb-net.h" #include "reb-filereq.h" -#ifdef FULL_DEFS -#include "reb-series.h" -#endif - #include "reb-gob.h" -#include "reb-ext.h" diff --git a/src/include/reb-net.h b/src/include/reb-net.h index 6755858..bd40b88 100644 --- a/src/include/reb-net.h +++ b/src/include/reb-net.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/include/reb-types.h b/src/include/reb-types.h deleted file mode 100644 index 0532bad..0000000 --- a/src/include/reb-types.h +++ /dev/null @@ -1,161 +0,0 @@ -/*********************************************************************** -** -** REBOL 3.0 "Invasion" -** Copyright 2010 REBOL Technologies -** All rights reserved. -** -************************************************************************ -** -** Title: Datatype Definitions -** Build: A100 -** Date: 12-Jul-2010/13:26:27-7:00 -** File: reb-types.h -** -** AUTO-GENERATED FILE - Do not modify. (From: make-boot.r) -** -***********************************************************************/ - - -/*********************************************************************** -** -*/ enum REBOL_Types -/* -** Internal datatype numbers. These change. Do not export. -** -***********************************************************************/ -{ - REB_END, // 0 - REB_UNSET, // 1 - REB_NONE, // 2 - REB_LOGIC, // 3 - REB_INTEGER, // 4 - REB_DECIMAL, // 5 - REB_PERCENT, // 6 - REB_MONEY, // 7 - REB_CHAR, // 8 - REB_PAIR, // 9 - REB_TUPLE, // 10 - REB_TIME, // 11 - REB_DATE, // 12 - REB_BINARY, // 13 - REB_STRING, // 14 - REB_FILE, // 15 - REB_EMAIL, // 16 - REB_URL, // 17 - REB_TAG, // 18 - REB_ISSUE, // 19 - REB_BITSET, // 20 - REB_IMAGE, // 21 - REB_VECTOR, // 22 - REB_BLOCK, // 23 - REB_PAREN, // 24 - REB_PATH, // 25 - REB_SET_PATH, // 26 - REB_GET_PATH, // 27 - REB_LIT_PATH, // 28 - REB_MAP, // 29 - REB_DATATYPE, // 30 - REB_TYPESET, // 31 - REB_WORD, // 32 - REB_SET_WORD, // 33 - REB_GET_WORD, // 34 - REB_LIT_WORD, // 35 - REB_REFINEMENT, // 36 - REB_NATIVE, // 37 - REB_ACTION, // 38 - REB_REBCODE, // 39 - REB_COMMAND, // 40 - REB_OP, // 41 - REB_CLOSURE, // 42 - REB_FUNCTION, // 43 - REB_FRAME, // 44 - REB_OBJECT, // 45 - REB_MODULE, // 46 - REB_ERROR, // 47 - REB_TASK, // 48 - REB_PORT, // 49 - REB_GOB, // 50 - REB_EVENT, // 51 - REB_HANDLE, // 52 - REB_STRUCT, // 53 - REB_LIBRARY, // 54 - REB_UTYPE, // 55 - REB_MAX -}; - -/*********************************************************************** -** -** REBOL Type Check Macros -** -***********************************************************************/ -#define IS_END(v) (VAL_TYPE(v)==REB_END) -#define IS_UNSET(v) (VAL_TYPE(v)==REB_UNSET) -#define IS_NONE(v) (VAL_TYPE(v)==REB_NONE) -#define IS_LOGIC(v) (VAL_TYPE(v)==REB_LOGIC) -#define IS_INTEGER(v) (VAL_TYPE(v)==REB_INTEGER) -#define IS_DECIMAL(v) (VAL_TYPE(v)==REB_DECIMAL) -#define IS_PERCENT(v) (VAL_TYPE(v)==REB_PERCENT) -#define IS_MONEY(v) (VAL_TYPE(v)==REB_MONEY) -#define IS_CHAR(v) (VAL_TYPE(v)==REB_CHAR) -#define IS_PAIR(v) (VAL_TYPE(v)==REB_PAIR) -#define IS_TUPLE(v) (VAL_TYPE(v)==REB_TUPLE) -#define IS_TIME(v) (VAL_TYPE(v)==REB_TIME) -#define IS_DATE(v) (VAL_TYPE(v)==REB_DATE) -#define IS_BINARY(v) (VAL_TYPE(v)==REB_BINARY) -#define IS_STRING(v) (VAL_TYPE(v)==REB_STRING) -#define IS_FILE(v) (VAL_TYPE(v)==REB_FILE) -#define IS_EMAIL(v) (VAL_TYPE(v)==REB_EMAIL) -#define IS_URL(v) (VAL_TYPE(v)==REB_URL) -#define IS_TAG(v) (VAL_TYPE(v)==REB_TAG) -#define IS_ISSUE(v) (VAL_TYPE(v)==REB_ISSUE) -#define IS_BITSET(v) (VAL_TYPE(v)==REB_BITSET) -#define IS_IMAGE(v) (VAL_TYPE(v)==REB_IMAGE) -#define IS_VECTOR(v) (VAL_TYPE(v)==REB_VECTOR) -#define IS_BLOCK(v) (VAL_TYPE(v)==REB_BLOCK) -#define IS_PAREN(v) (VAL_TYPE(v)==REB_PAREN) -#define IS_PATH(v) (VAL_TYPE(v)==REB_PATH) -#define IS_SET_PATH(v) (VAL_TYPE(v)==REB_SET_PATH) -#define IS_GET_PATH(v) (VAL_TYPE(v)==REB_GET_PATH) -#define IS_LIT_PATH(v) (VAL_TYPE(v)==REB_LIT_PATH) -#define IS_MAP(v) (VAL_TYPE(v)==REB_MAP) -#define IS_DATATYPE(v) (VAL_TYPE(v)==REB_DATATYPE) -#define IS_TYPESET(v) (VAL_TYPE(v)==REB_TYPESET) -#define IS_WORD(v) (VAL_TYPE(v)==REB_WORD) -#define IS_SET_WORD(v) (VAL_TYPE(v)==REB_SET_WORD) -#define IS_GET_WORD(v) (VAL_TYPE(v)==REB_GET_WORD) -#define IS_LIT_WORD(v) (VAL_TYPE(v)==REB_LIT_WORD) -#define IS_REFINEMENT(v) (VAL_TYPE(v)==REB_REFINEMENT) -#define IS_NATIVE(v) (VAL_TYPE(v)==REB_NATIVE) -#define IS_ACTION(v) (VAL_TYPE(v)==REB_ACTION) -#define IS_REBCODE(v) (VAL_TYPE(v)==REB_REBCODE) -#define IS_COMMAND(v) (VAL_TYPE(v)==REB_COMMAND) -#define IS_OP(v) (VAL_TYPE(v)==REB_OP) -#define IS_CLOSURE(v) (VAL_TYPE(v)==REB_CLOSURE) -#define IS_FUNCTION(v) (VAL_TYPE(v)==REB_FUNCTION) -#define IS_FRAME(v) (VAL_TYPE(v)==REB_FRAME) -#define IS_OBJECT(v) (VAL_TYPE(v)==REB_OBJECT) -#define IS_MODULE(v) (VAL_TYPE(v)==REB_MODULE) -#define IS_ERROR(v) (VAL_TYPE(v)==REB_ERROR) -#define IS_TASK(v) (VAL_TYPE(v)==REB_TASK) -#define IS_PORT(v) (VAL_TYPE(v)==REB_PORT) -#define IS_GOB(v) (VAL_TYPE(v)==REB_GOB) -#define IS_EVENT(v) (VAL_TYPE(v)==REB_EVENT) -#define IS_HANDLE(v) (VAL_TYPE(v)==REB_HANDLE) -#define IS_STRUCT(v) (VAL_TYPE(v)==REB_STRUCT) -#define IS_LIBRARY(v) (VAL_TYPE(v)==REB_LIBRARY) -#define IS_UTYPE(v) (VAL_TYPE(v)==REB_UTYPE) - -/*********************************************************************** -** -** REBOL Typeset Defines -** -***********************************************************************/ -#define TS_NUMBER (((REBU64)1<flags)) // get only the type, not flags - -#define VAL_INT32(v) (REBINT)((v)->data.integer) -#define VAL_INT64(v) ((v)->data.integer) -#define VAL_DECIMAL(v) ((v)->data.decimal) -#define VAL_LOGIC(v) ((v)->data.int32) -#define VAL_TUPLE(v) ((v)->data.tuple.tuple+1) -#define VAL_TUPLE_LEN(v) ((v)->data.tuple.tuple[0]) -#define VAL_PAIR(v) ((v)->data.pair) -#define VAL_WORD(v) ((v)->data.word.index) -#define VAL_WORD_SYM(v) ((v)->data.word.sym) - -#define VAL_SERIES(v) ((v)->data.series.series) -#define VAL_STRING(v) STR_HEAD(VAL_SERIES(v)) - -#define VAL_IMAGE_SIZE(v) (IMG_SIZE(VAL_SERIES(v))) -#define VAL_IMAGE_WIDE(v) (IMG_WIDE(VAL_SERIES(v))) -#define VAL_IMAGE_HIGH(v) (IMG_HIGH(VAL_SERIES(v))) -#define VAL_IMAGE_DATA(v) (IMG_DATA(VAL_SERIES(v))) - diff --git a/src/include/rebol-lib.h b/src/include/rebol-lib.h index 9497610..a296de9 100644 --- a/src/include/rebol-lib.h +++ b/src/include/rebol-lib.h @@ -8,7 +8,7 @@ ** ** Title: REBOL Interface Library ** Build: A100 -** Date: 12-Jul-2010/13:15:26-7:00 +** Date: 16-Jul-2010/11:35:39-7:00 ** File: rebol-lib.h ** ** AUTO-GENERATED FILE - Do not modify. (From: make-headers.r) diff --git a/src/include/sys-net.h b/src/include/sys-net.h index f49e03d..8790bb9 100644 --- a/src/include/sys-net.h +++ b/src/include/sys-net.h @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/dev-dns.c b/src/os/dev-dns.c index 2f2afd1..71d9d87 100644 --- a/src/os/dev-dns.c +++ b/src/os/dev-dns.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/dev-net.c b/src/os/dev-net.c index 969ed44..e1c5326 100644 --- a/src/os/dev-net.c +++ b/src/os/dev-net.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/host-args.c b/src/os/host-args.c index 78e3aee..0c35b04 100644 --- a/src/os/host-args.c +++ b/src/os/host-args.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/host-device.c b/src/os/host-device.c index b35ff52..d72d8e8 100644 --- a/src/os/host-device.c +++ b/src/os/host-device.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/host-ext-draw.c b/src/os/host-ext-draw.c index bf3b107..c541b95 100644 --- a/src/os/host-ext-draw.c +++ b/src/os/host-ext-draw.c @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: REBOL Draw Graphics - Module Initialization -** Build: A100 -** Date: 12-Jul-2010/13:29:57-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:05:05-7:00 ** File: host-ext-draw ** ** AUTO-GENERATED FILE - Do not modify. (From: make-host-ext.r) @@ -56,23 +56,21 @@ const unsigned char RX_draw[] = { 101, 32, 111, 114, 32, 101, 108, 108, 105, 112, 115, 101, 46, 34, 32, 10, 111, 114, 105, 103, 105, 110, 32, 91, 112, 97, 105, 114, 33, 93, - 32, 10, 114, 97, 100, 105, 117, 115, 45, 120, - 32, 91, 100, 101, 99, 105, 109, 97, 108, 33, - 93, 32, 10, 114, 97, 100, 105, 117, 115, 45, - 121, 32, 91, 100, 101, 99, 105, 109, 97, 108, - 33, 93, 10, 93, 32, 10, 112, 101, 110, 58, - 32, 99, 111, 109, 109, 97, 110, 100, 32, 91, - 10, 34, 83, 101, 116, 32, 116, 104, 101, 32, - 108, 105, 110, 101, 32, 112, 101, 110, 32, 99, - 111, 108, 111, 114, 46, 34, 32, 10, 99, 111, - 108, 111, 114, 32, 91, 116, 117, 112, 108, 101, - 33, 93, 10, 93, 32, 10, 102, 105, 108, 108, - 45, 112, 101, 110, 58, 32, 99, 111, 109, 109, - 97, 110, 100, 32, 91, 10, 34, 83, 101, 116, - 32, 116, 104, 101, 32, 97, 114, 101, 97, 32, - 102, 105, 108, 108, 32, 112, 101, 110, 32, 99, - 111, 108, 111, 114, 46, 34, 32, 10, 99, 111, - 108, 111, 114, 32, 91, 116, 117, 112, 108, 101, - 33, 93, 10, 93, 10, 0, + 32, 10, 114, 97, 100, 105, 117, 115, 32, 91, + 112, 97, 105, 114, 33, 93, 10, 93, 32, 10, + 112, 101, 110, 58, 32, 99, 111, 109, 109, 97, + 110, 100, 32, 91, 10, 34, 83, 101, 116, 32, + 116, 104, 101, 32, 108, 105, 110, 101, 32, 112, + 101, 110, 32, 99, 111, 108, 111, 114, 46, 34, + 32, 10, 99, 111, 108, 111, 114, 32, 91, 116, + 117, 112, 108, 101, 33, 93, 10, 93, 32, 10, + 102, 105, 108, 108, 45, 112, 101, 110, 58, 32, + 99, 111, 109, 109, 97, 110, 100, 32, 91, 10, + 34, 83, 101, 116, 32, 116, 104, 101, 32, 97, + 114, 101, 97, 32, 102, 105, 108, 108, 32, 112, + 101, 110, 32, 99, 111, 108, 111, 114, 46, 34, + 32, 10, 99, 111, 108, 111, 114, 32, 91, 116, + 117, 112, 108, 101, 33, 93, 10, 93, 10, 0, + }; diff --git a/src/os/host-ext-graphics.c b/src/os/host-ext-graphics.c index d80c883..33074b6 100644 --- a/src/os/host-ext-graphics.c +++ b/src/os/host-ext-graphics.c @@ -7,8 +7,8 @@ ************************************************************************ ** ** Title: REBOL Graphics - Module Initialization -** Build: A100 -** Date: 12-Jul-2010/13:29:57-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:05:05-7:00 ** File: host-ext-graphics ** ** AUTO-GENERATED FILE - Do not modify. (From: make-host-ext.r) diff --git a/src/os/host-init.c b/src/os/host-init.c index b41b718..c6c63f0 100644 --- a/src/os/host-init.c +++ b/src/os/host-init.c @@ -7,15 +7,15 @@ ************************************************************************ ** ** Title: Host custom init code -** Build: A100 -** Date: 12-Jul-2010/13:29:57-7:00 +** Build: A101 +** Date: 20-Jul-2010/16:05:05-7:00 ** File: os/host-init.c ** ** AUTO-GENERATED FILE - Do not modify. (From: make-host-init.r) ** ***********************************************************************/ -#define REB_INIT_SIZE 3866 +#define REB_INIT_SIZE 3864 const unsigned char Reb_Init_Code[REB_INIT_SIZE] = { 120, 156, 213, 26, 219, 146, 219, 68, 118, 159, @@ -27,381 +27,381 @@ const unsigned char Reb_Init_Code[REB_INIT_SIZE] = { 238, 211, 167, 207, 173, 207, 173, 251, 11, 245, 162, 90, 110, 234, 124, 54, 111, 213, 247, 47, 191, 250, 238, 181, 186, 211, 233, 188, 172, 138, - 106, 150, 235, 70, 141, 198, 193, 191, 86, 69, - 48, 14, 71, 225, 112, 116, 22, 141, 159, 69, - 23, 87, 193, 85, 20, 134, 158, 151, 47, 150, - 85, 221, 170, 69, 149, 173, 10, 173, 98, 175, - 205, 219, 66, 71, 202, 103, 44, 103, 234, 213, - 221, 221, 27, 181, 172, 171, 182, 74, 171, 66, - 53, 233, 92, 47, 180, 175, 188, 7, 93, 55, - 121, 85, 70, 42, 28, 140, 6, 161, 242, 202, - 100, 1, 171, 230, 109, 187, 244, 38, 128, 165, - 217, 148, 105, 80, 45, 35, 53, 93, 149, 169, - 138, 105, 139, 183, 85, 182, 81, 195, 162, 74, - 19, 192, 211, 38, 173, 70, 192, 85, 89, 232, - 166, 81, 8, 48, 164, 65, 21, 87, 75, 93, - 210, 128, 51, 58, 76, 139, 170, 209, 183, 145, - 218, 232, 102, 162, 60, 26, 139, 220, 85, 60, - 52, 76, 214, 201, 61, 76, 68, 181, 78, 178, - 128, 136, 160, 17, 229, 101, 21, 239, 239, 229, - 83, 222, 92, 214, 221, 168, 39, 8, 187, 81, - 113, 86, 5, 181, 254, 121, 165, 27, 222, 23, - 118, 113, 104, 187, 85, 235, 36, 111, 85, 44, - 196, 84, 101, 169, 211, 22, 248, 23, 18, 150, - 58, 29, 182, 249, 66, 87, 43, 88, 23, 163, - 20, 2, 93, 215, 85, 173, 252, 59, 30, 245, - 1, 29, 238, 31, 169, 20, 244, 196, 220, 33, - 41, 73, 81, 160, 180, 116, 1, 232, 132, 174, - 188, 156, 86, 195, 57, 208, 4, 18, 86, 79, - 94, 84, 101, 171, 203, 54, 184, 219, 44, 45, - 147, 46, 196, 176, 15, 176, 76, 234, 70, 239, - 65, 212, 7, 139, 61, 191, 213, 239, 218, 161, - 175, 218, 121, 189, 82, 254, 23, 42, 157, 227, - 194, 246, 230, 199, 187, 111, 130, 107, 223, 155, - 144, 18, 153, 224, 182, 2, 124, 117, 94, 206, - 78, 72, 130, 48, 211, 201, 144, 181, 162, 98, - 250, 107, 196, 102, 160, 182, 116, 96, 108, 65, - 63, 0, 29, 242, 231, 100, 98, 12, 130, 196, - 69, 150, 179, 206, 219, 116, 62, 204, 244, 52, - 89, 21, 173, 34, 176, 97, 203, 84, 139, 220, - 149, 104, 204, 115, 84, 198, 112, 44, 215, 105, - 82, 52, 26, 41, 200, 170, 146, 76, 186, 94, - 209, 79, 166, 178, 251, 205, 42, 138, 249, 111, - 228, 160, 16, 155, 227, 121, 111, 255, 120, 164, - 74, 196, 142, 134, 69, 191, 69, 102, 178, 55, - 162, 39, 51, 216, 195, 186, 112, 76, 180, 18, - 12, 125, 99, 115, 100, 107, 173, 209, 200, 99, - 15, 199, 163, 30, 103, 22, 92, 108, 159, 48, - 53, 246, 60, 216, 105, 115, 40, 208, 194, 202, - 77, 128, 187, 163, 181, 222, 170, 168, 3, 225, - 173, 226, 254, 185, 217, 154, 6, 46, 204, 140, - 3, 167, 142, 42, 9, 149, 3, 127, 24, 114, - 129, 255, 99, 85, 171, 24, 1, 34, 62, 111, - 138, 153, 176, 219, 161, 118, 230, 58, 189, 7, - 125, 54, 203, 170, 4, 53, 217, 41, 20, 229, - 26, 252, 143, 62, 138, 148, 33, 118, 177, 58, - 103, 93, 182, 6, 75, 14, 204, 241, 242, 44, - 45, 142, 213, 20, 85, 117, 191, 90, 186, 126, - 136, 166, 144, 68, 177, 191, 120, 15, 218, 141, - 58, 66, 157, 89, 184, 77, 159, 107, 149, 192, - 121, 164, 88, 176, 61, 15, 197, 18, 221, 28, - 229, 190, 59, 127, 219, 216, 179, 10, 249, 53, - 167, 100, 155, 127, 195, 136, 88, 52, 162, 14, - 92, 239, 245, 131, 174, 193, 209, 43, 66, 159, - 169, 206, 237, 249, 199, 152, 229, 181, 251, 136, - 49, 219, 103, 73, 155, 224, 185, 203, 219, 57, - 96, 7, 11, 85, 113, 14, 238, 105, 166, 235, - 219, 125, 190, 43, 21, 223, 85, 232, 114, 214, - 206, 247, 65, 180, 117, 82, 54, 83, 93, 7, - 186, 76, 43, 220, 2, 252, 186, 159, 206, 87, - 229, 189, 206, 252, 201, 95, 204, 38, 40, 170, - 60, 174, 46, 242, 75, 187, 182, 250, 251, 245, - 203, 255, 25, 27, 234, 156, 9, 26, 19, 59, - 36, 244, 117, 4, 178, 197, 180, 113, 73, 158, - 255, 45, 238, 151, 148, 236, 197, 212, 20, 62, - 160, 149, 126, 216, 7, 57, 44, 32, 18, 38, - 51, 242, 23, 18, 11, 192, 247, 220, 159, 48, - 191, 224, 102, 232, 231, 173, 178, 96, 242, 37, - 82, 201, 79, 96, 129, 102, 92, 232, 224, 189, - 78, 208, 21, 51, 127, 207, 211, 20, 35, 173, - 151, 103, 240, 227, 141, 73, 54, 188, 164, 158, - 141, 34, 179, 214, 113, 170, 91, 28, 220, 205, - 235, 106, 253, 7, 89, 0, 55, 190, 109, 22, - 118, 95, 87, 120, 114, 146, 186, 205, 95, 128, - 81, 183, 36, 64, 218, 207, 156, 180, 167, 181, - 110, 87, 117, 217, 152, 216, 121, 74, 4, 180, - 243, 10, 124, 227, 186, 170, 179, 19, 51, 49, - 81, 254, 203, 193, 108, 160, 254, 241, 242, 238, - 115, 245, 234, 229, 243, 175, 63, 87, 111, 190, - 251, 225, 78, 233, 54, 29, 192, 154, 22, 100, - 160, 193, 227, 76, 243, 66, 59, 107, 126, 253, - 103, 169, 210, 4, 116, 94, 77, 205, 224, 231, - 16, 144, 148, 110, 210, 100, 137, 246, 159, 67, - 222, 162, 107, 16, 197, 2, 44, 250, 169, 134, - 13, 86, 141, 158, 174, 10, 12, 231, 21, 24, - 123, 157, 103, 186, 131, 198, 205, 78, 7, 234, - 69, 82, 35, 204, 201, 111, 32, 103, 227, 33, - 68, 72, 144, 16, 10, 103, 102, 230, 41, 228, - 11, 65, 143, 21, 181, 76, 242, 186, 65, 78, - 229, 196, 170, 24, 163, 143, 21, 119, 94, 38, - 245, 230, 132, 226, 38, 178, 96, 16, 10, 48, - 96, 52, 73, 202, 107, 62, 232, 192, 67, 74, - 210, 205, 84, 178, 106, 171, 69, 210, 230, 16, - 238, 138, 13, 80, 250, 114, 177, 108, 55, 178, - 47, 32, 132, 16, 244, 46, 73, 219, 98, 163, - 138, 28, 204, 11, 119, 24, 0, 19, 18, 105, - 225, 48, 64, 148, 34, 53, 243, 215, 8, 134, - 200, 44, 33, 255, 92, 130, 152, 72, 146, 40, - 43, 37, 42, 250, 196, 87, 192, 133, 248, 39, - 20, 253, 173, 50, 138, 40, 33, 113, 130, 108, - 185, 200, 100, 4, 207, 152, 124, 241, 124, 178, - 129, 33, 36, 196, 190, 122, 241, 253, 235, 111, - 208, 116, 0, 173, 78, 192, 165, 147, 214, 133, - 226, 137, 234, 28, 112, 173, 33, 204, 100, 66, - 35, 156, 27, 196, 76, 160, 68, 131, 112, 136, - 200, 38, 146, 121, 89, 217, 26, 41, 83, 138, - 102, 132, 107, 102, 183, 241, 250, 125, 217, 66, - 130, 175, 216, 157, 222, 218, 37, 118, 147, 100, - 233, 46, 197, 97, 101, 5, 231, 108, 37, 243, - 61, 154, 250, 75, 101, 120, 98, 150, 115, 64, - 218, 61, 67, 111, 216, 82, 183, 15, 17, 168, - 128, 188, 25, 149, 15, 96, 49, 70, 159, 152, - 110, 43, 244, 255, 92, 106, 192, 175, 168, 203, - 195, 129, 30, 152, 113, 107, 3, 10, 21, 138, - 224, 76, 192, 136, 40, 149, 13, 224, 240, 44, - 172, 203, 173, 222, 254, 4, 94, 31, 157, 18, - 122, 163, 37, 144, 231, 127, 54, 252, 12, 104, - 224, 159, 193, 11, 78, 145, 97, 120, 213, 78, - 33, 73, 86, 222, 171, 10, 153, 16, 43, 33, - 244, 184, 105, 144, 103, 234, 203, 191, 171, 235, - 144, 148, 203, 102, 70, 220, 49, 1, 176, 6, - 84, 27, 249, 189, 5, 146, 59, 246, 160, 80, - 88, 63, 54, 16, 211, 158, 207, 72, 201, 92, - 145, 65, 110, 174, 92, 78, 88, 68, 195, 126, - 62, 210, 15, 250, 158, 27, 42, 35, 18, 220, - 208, 164, 89, 65, 145, 151, 122, 123, 140, 138, - 136, 76, 68, 136, 177, 58, 18, 28, 77, 254, - 139, 1, 206, 104, 39, 250, 202, 165, 31, 103, - 195, 235, 58, 151, 52, 108, 184, 83, 42, 237, - 122, 81, 230, 68, 206, 28, 88, 22, 59, 57, - 138, 158, 44, 157, 4, 188, 192, 167, 195, 73, - 95, 121, 188, 74, 108, 11, 165, 68, 244, 6, - 180, 117, 144, 229, 9, 214, 82, 253, 194, 19, - 93, 152, 114, 140, 103, 175, 217, 112, 233, 196, - 176, 113, 12, 154, 150, 239, 236, 226, 158, 58, - 164, 70, 60, 115, 170, 222, 111, 13, 63, 89, - 130, 222, 78, 129, 162, 106, 137, 181, 162, 69, - 33, 222, 251, 189, 90, 213, 5, 216, 241, 83, - 203, 156, 193, 52, 113, 161, 217, 227, 10, 84, - 103, 176, 253, 45, 237, 120, 60, 233, 175, 238, - 185, 220, 247, 230, 176, 154, 77, 173, 203, 216, - 66, 103, 199, 81, 141, 167, 38, 171, 232, 101, - 228, 61, 145, 138, 48, 81, 187, 120, 216, 173, - 63, 203, 70, 42, 27, 43, 52, 42, 178, 141, - 94, 85, 99, 37, 191, 91, 188, 35, 158, 72, - 237, 90, 12, 31, 101, 247, 20, 247, 205, 216, - 30, 130, 125, 102, 76, 84, 28, 168, 95, 118, - 124, 134, 41, 197, 49, 150, 88, 172, 25, 100, - 31, 211, 188, 228, 148, 144, 78, 2, 4, 164, - 98, 10, 50, 133, 185, 49, 207, 13, 219, 36, - 47, 144, 111, 156, 25, 195, 20, 103, 68, 123, - 14, 25, 255, 223, 41, 167, 177, 21, 0, 102, - 80, 183, 14, 126, 64, 180, 117, 94, 237, 23, - 0, 130, 149, 171, 180, 29, 66, 145, 48, 71, - 72, 57, 75, 178, 139, 37, 219, 57, 149, 71, - 15, 21, 48, 125, 32, 197, 142, 157, 227, 190, - 31, 132, 80, 75, 210, 126, 114, 0, 166, 191, - 69, 145, 52, 109, 176, 128, 236, 124, 154, 67, - 64, 143, 29, 47, 146, 180, 173, 94, 224, 137, - 1, 148, 56, 114, 178, 127, 205, 132, 226, 200, - 2, 178, 151, 29, 161, 141, 15, 21, 122, 56, - 237, 117, 173, 28, 55, 236, 38, 172, 86, 196, - 137, 153, 154, 178, 245, 31, 21, 98, 244, 203, - 174, 219, 231, 31, 177, 64, 199, 47, 67, 52, - 28, 178, 53, 136, 100, 18, 255, 125, 21, 127, - 226, 67, 18, 240, 30, 92, 253, 8, 10, 144, - 166, 90, 104, 14, 232, 177, 135, 35, 234, 233, - 126, 143, 251, 4, 135, 79, 149, 247, 94, 1, - 216, 24, 160, 99, 63, 60, 71, 52, 126, 120, - 1, 104, 14, 173, 42, 171, 64, 36, 79, 107, - 15, 129, 85, 247, 167, 200, 31, 33, 63, 67, - 82, 252, 240, 236, 48, 41, 141, 214, 65, 133, - 161, 141, 233, 33, 66, 14, 19, 208, 169, 201, - 128, 95, 28, 6, 95, 225, 143, 186, 122, 183, - 57, 74, 110, 173, 179, 188, 6, 79, 208, 17, - 125, 206, 68, 31, 145, 223, 170, 132, 76, 113, - 94, 213, 96, 185, 150, 144, 171, 195, 224, 68, - 68, 128, 75, 142, 82, 146, 22, 57, 90, 53, - 149, 5, 29, 53, 71, 24, 108, 168, 160, 236, - 45, 56, 4, 42, 141, 212, 0, 69, 216, 64, - 54, 10, 62, 9, 72, 103, 7, 44, 109, 22, - 52, 176, 3, 22, 88, 221, 119, 117, 180, 27, - 76, 111, 212, 147, 57, 247, 97, 246, 118, 42, - 200, 196, 63, 168, 62, 237, 183, 66, 209, 213, - 199, 143, 44, 230, 45, 156, 213, 19, 147, 121, - 131, 11, 163, 136, 66, 103, 182, 223, 2, 69, - 183, 139, 200, 247, 181, 102, 237, 234, 191, 144, - 96, 79, 250, 21, 108, 129, 202, 158, 133, 255, - 132, 180, 211, 85, 3, 197, 141, 67, 0, 248, - 165, 12, 38, 194, 195, 130, 147, 82, 224, 131, - 68, 103, 186, 44, 20, 222, 184, 51, 65, 49, - 45, 198, 114, 6, 201, 158, 244, 120, 241, 24, - 112, 175, 189, 221, 56, 94, 65, 114, 50, 155, - 250, 0, 54, 22, 26, 4, 71, 219, 189, 126, - 13, 89, 2, 70, 242, 142, 17, 74, 255, 69, - 170, 220, 1, 53, 174, 222, 5, 61, 222, 174, - 249, 222, 32, 192, 52, 50, 71, 222, 23, 73, - 185, 74, 10, 138, 71, 53, 10, 151, 123, 55, - 143, 200, 221, 109, 224, 56, 253, 20, 180, 157, - 206, 137, 40, 247, 236, 43, 247, 92, 171, 206, - 121, 124, 132, 85, 16, 155, 59, 90, 221, 217, - 253, 49, 81, 60, 7, 80, 228, 151, 101, 71, - 149, 176, 117, 34, 106, 163, 219, 143, 146, 2, - 246, 147, 14, 49, 253, 8, 65, 177, 233, 165, - 201, 188, 79, 145, 113, 242, 113, 84, 184, 81, - 197, 52, 170, 255, 219, 142, 204, 179, 177, 235, - 208, 105, 63, 174, 176, 55, 176, 20, 111, 228, - 254, 44, 77, 245, 140, 240, 119, 217, 74, 2, - 62, 96, 249, 39, 83, 211, 37, 34, 255, 51, - 145, 135, 60, 153, 113, 104, 127, 172, 8, 230, - 18, 247, 67, 110, 20, 48, 177, 196, 189, 247, - 6, 247, 71, 21, 37, 61, 16, 185, 8, 17, - 28, 125, 29, 125, 132, 126, 76, 151, 184, 243, - 52, 212, 36, 134, 97, 46, 105, 34, 245, 201, - 175, 225, 215, 225, 243, 223, 120, 100, 236, 12, - 185, 195, 253, 10, 70, 0, 165, 47, 187, 93, - 138, 68, 220, 1, 122, 135, 214, 176, 221, 127, - 242, 238, 76, 207, 254, 165, 244, 236, 97, 236, - 53, 230, 251, 223, 202, 145, 103, 129, 219, 158, - 17, 251, 252, 94, 21, 106, 26, 67, 165, 94, - 7, 171, 58, 87, 49, 214, 215, 150, 56, 42, - 124, 38, 110, 221, 223, 93, 59, 239, 20, 128, - 123, 138, 82, 193, 186, 91, 120, 105, 140, 207, - 48, 85, 216, 141, 121, 25, 221, 141, 119, 5, - 165, 76, 202, 56, 246, 132, 158, 160, 148, 30, - 83, 255, 175, 54, 188, 129, 160, 147, 238, 234, - 29, 132, 2, 210, 194, 163, 53, 173, 33, 93, - 32, 35, 233, 217, 196, 111, 182, 148, 113, 107, - 221, 15, 62, 187, 189, 60, 193, 208, 78, 237, - 170, 27, 167, 117, 101, 103, 76, 171, 235, 166, - 215, 200, 178, 29, 57, 105, 111, 88, 104, 44, - 58, 189, 173, 43, 246, 238, 206, 237, 131, 35, - 62, 118, 175, 137, 76, 34, 38, 232, 50, 0, - 73, 162, 230, 224, 213, 224, 52, 207, 252, 222, - 131, 128, 15, 15, 255, 202, 137, 201, 251, 26, - 30, 230, 152, 227, 150, 20, 183, 171, 21, 164, - 107, 120, 209, 20, 96, 181, 172, 22, 247, 35, - 248, 140, 85, 91, 39, 96, 125, 181, 244, 63, - 208, 29, 28, 232, 124, 216, 147, 178, 231, 242, - 255, 96, 91, 196, 173, 80, 169, 119, 29, 27, - 60, 199, 111, 194, 240, 158, 131, 24, 235, 74, - 103, 15, 24, 232, 57, 57, 18, 149, 105, 241, - 154, 22, 49, 131, 174, 32, 120, 20, 93, 174, - 211, 85, 191, 114, 159, 71, 79, 27, 28, 97, - 80, 213, 59, 215, 239, 130, 44, 159, 229, 109, - 195, 143, 13, 76, 3, 5, 36, 69, 174, 68, - 151, 153, 228, 66, 102, 93, 191, 181, 128, 223, - 155, 102, 165, 79, 92, 204, 134, 4, 103, 232, - 70, 133, 124, 19, 213, 145, 133, 202, 136, 141, - 123, 83, 79, 69, 39, 144, 148, 248, 167, 178, - 51, 84, 214, 68, 180, 81, 23, 140, 90, 151, - 230, 208, 102, 87, 90, 79, 96, 87, 152, 102, - 185, 209, 153, 233, 43, 219, 249, 195, 81, 240, - 49, 3, 61, 92, 23, 160, 43, 215, 73, 173, - 76, 119, 67, 30, 52, 236, 209, 140, 136, 192, - 209, 201, 125, 190, 68, 11, 141, 172, 34, 28, - 62, 115, 240, 221, 96, 8, 212, 93, 161, 182, - 22, 90, 183, 49, 233, 94, 239, 133, 52, 110, - 112, 41, 152, 196, 6, 206, 230, 214, 80, 100, - 222, 88, 200, 163, 8, 243, 195, 70, 243, 253, - 47, 112, 108, 232, 148, 184, 45, 55, 194, 135, - 122, 84, 158, 99, 181, 142, 65, 139, 12, 14, - 172, 250, 242, 198, 26, 181, 93, 126, 40, 87, - 177, 72, 183, 78, 197, 217, 56, 12, 195, 63, - 172, 68, 169, 137, 108, 182, 96, 20, 121, 144, - 177, 45, 88, 137, 222, 221, 249, 138, 204, 43, - 30, 229, 143, 198, 103, 231, 23, 151, 87, 215, - 207, 194, 228, 109, 154, 233, 233, 243, 175, 94, - 124, 253, 242, 27, 95, 90, 240, 18, 144, 98, - 121, 180, 197, 81, 201, 62, 252, 122, 5, 132, - 215, 119, 24, 180, 41, 66, 19, 205, 246, 74, - 246, 97, 52, 24, 249, 166, 127, 74, 252, 54, - 155, 166, 213, 11, 20, 93, 153, 37, 117, 198, - 129, 0, 231, 131, 18, 175, 203, 60, 142, 3, - 159, 14, 205, 245, 39, 151, 138, 142, 227, 139, - 39, 202, 235, 181, 159, 145, 20, 122, 52, 21, - 169, 209, 133, 201, 224, 14, 236, 134, 49, 62, - 144, 12, 111, 43, 157, 243, 118, 82, 185, 110, - 79, 147, 88, 36, 105, 139, 241, 134, 245, 96, - 239, 163, 220, 220, 194, 61, 86, 91, 79, 105, - 220, 87, 52, 198, 176, 241, 205, 8, 91, 150, - 138, 211, 4, 107, 5, 14, 51, 230, 134, 155, - 58, 101, 246, 97, 9, 63, 28, 171, 245, 148, - 203, 249, 237, 155, 28, 74, 25, 228, 108, 244, - 106, 8, 68, 207, 101, 63, 204, 225, 211, 50, - 103, 165, 233, 119, 59, 212, 237, 198, 93, 233, - 33, 216, 119, 122, 66, 177, 132, 64, 186, 73, - 217, 43, 13, 200, 104, 147, 66, 124, 141, 112, - 76, 29, 5, 185, 253, 143, 104, 86, 206, 137, - 253, 217, 93, 72, 152, 33, 88, 78, 127, 35, - 190, 116, 53, 131, 6, 165, 96, 227, 213, 6, - 18, 18, 192, 85, 10, 63, 99, 247, 37, 27, - 152, 43, 248, 223, 66, 74, 154, 225, 187, 96, - 189, 94, 7, 136, 19, 179, 51, 138, 128, 58, - 235, 30, 183, 241, 189, 221, 132, 17, 79, 156, - 148, 231, 255, 85, 175, 123, 46, 190, 152, 70, - 22, 221, 7, 235, 253, 56, 30, 177, 10, 228, - 238, 128, 81, 56, 183, 65, 230, 61, 136, 147, - 227, 196, 146, 149, 74, 21, 130, 153, 49, 28, - 191, 91, 71, 82, 148, 204, 245, 68, 241, 45, - 196, 124, 76, 94, 104, 38, 201, 50, 56, 203, - 77, 95, 32, 110, 109, 97, 252, 118, 94, 230, - 88, 95, 121, 93, 174, 20, 41, 243, 186, 143, - 61, 139, 121, 70, 90, 86, 61, 183, 226, 230, - 239, 236, 77, 196, 125, 163, 127, 113, 30, 193, - 117, 194, 247, 250, 218, 113, 119, 228, 172, 205, - 226, 197, 27, 101, 70, 13, 248, 218, 20, 60, - 237, 156, 238, 141, 183, 216, 247, 36, 131, 118, - 39, 76, 142, 13, 238, 105, 218, 189, 89, 0, - 28, 209, 112, 200, 162, 193, 139, 100, 231, 14, - 153, 67, 86, 239, 49, 159, 152, 10, 77, 240, - 115, 65, 137, 67, 164, 80, 185, 2, 49, 61, - 69, 50, 243, 195, 126, 112, 90, 173, 202, 236, - 150, 75, 4, 71, 193, 221, 225, 216, 145, 70, - 247, 58, 233, 48, 214, 45, 107, 113, 202, 212, - 61, 119, 200, 123, 135, 13, 199, 172, 99, 215, - 70, 140, 163, 55, 12, 98, 182, 247, 184, 159, - 239, 248, 219, 211, 206, 235, 208, 115, 0, 39, - 183, 244, 150, 58, 170, 24, 79, 21, 165, 89, - 25, 77, 59, 196, 218, 231, 10, 134, 91, 78, - 60, 236, 107, 96, 250, 45, 39, 13, 78, 108, - 189, 159, 74, 123, 212, 164, 51, 135, 168, 13, - 214, 221, 226, 194, 50, 68, 208, 183, 166, 39, - 231, 62, 110, 221, 42, 188, 88, 128, 242, 158, - 213, 78, 50, 237, 76, 155, 36, 79, 143, 202, - 208, 225, 113, 39, 223, 2, 176, 208, 121, 188, - 246, 182, 72, 210, 123, 124, 72, 30, 226, 67, - 242, 180, 74, 138, 72, 93, 158, 15, 232, 159, - 242, 102, 117, 2, 178, 24, 141, 175, 7, 242, - 1, 101, 234, 117, 139, 217, 248, 232, 42, 28, - 200, 7, 82, 146, 188, 120, 160, 193, 103, 227, - 129, 124, 96, 176, 172, 214, 145, 26, 159, 135, - 3, 249, 64, 112, 155, 83, 112, 27, 95, 92, - 12, 228, 131, 20, 96, 132, 65, 2, 232, 231, - 172, 214, 154, 94, 182, 35, 0, 146, 180, 73, - 236, 79, 2, 168, 49, 155, 160, 73, 156, 222, - 232, 162, 160, 109, 4, 101, 136, 105, 22, 190, - 217, 72, 12, 16, 45, 42, 147, 135, 13, 111, - 66, 76, 64, 2, 63, 165, 215, 243, 192, 21, - 172, 104, 53, 178, 29, 118, 76, 46, 146, 186, - 66, 111, 66, 243, 8, 81, 21, 249, 131, 238, - 36, 1, 35, 203, 85, 189, 44, 180, 1, 161, - 85, 21, 164, 108, 51, 97, 111, 116, 1, 131, - 180, 48, 171, 147, 183, 145, 186, 26, 15, 224, - 223, 232, 18, 248, 173, 171, 53, 162, 62, 123, - 54, 184, 124, 6, 146, 66, 169, 79, 167, 26, - 214, 93, 93, 14, 198, 151, 3, 18, 167, 46, - 75, 96, 96, 116, 25, 14, 174, 199, 131, 243, - 11, 108, 255, 228, 139, 6, 73, 26, 143, 129, - 165, 112, 112, 9, 96, 15, 121, 85, 224, 155, - 24, 64, 28, 14, 158, 133, 136, 58, 71, 101, - 142, 174, 174, 7, 103, 231, 240, 15, 168, 204, - 203, 123, 33, 8, 84, 58, 198, 204, 121, 6, - 36, 137, 188, 194, 139, 1, 106, 165, 77, 8, - 47, 144, 119, 125, 62, 24, 157, 161, 78, 116, - 110, 24, 25, 35, 203, 207, 128, 238, 252, 161, - 194, 131, 97, 117, 135, 43, 49, 217, 195, 181, - 23, 162, 227, 51, 24, 187, 159, 39, 247, 57, - 18, 1, 204, 225, 103, 124, 137, 58, 123, 91, - 21, 104, 227, 163, 243, 49, 75, 121, 68, 214, - 160, 147, 22, 45, 4, 119, 193, 113, 144, 69, - 242, 243, 10, 24, 63, 71, 225, 193, 7, 241, - 225, 27, 46, 116, 217, 225, 224, 156, 4, 191, - 78, 200, 254, 174, 17, 4, 16, 157, 143, 49, - 20, 47, 147, 141, 40, 28, 198, 207, 174, 64, - 132, 247, 104, 184, 204, 51, 155, 192, 34, 199, - 28, 151, 209, 94, 2, 1, 76, 22, 25, 223, - 217, 245, 224, 226, 26, 209, 1, 231, 80, 209, - 7, 41, 19, 75, 75, 249, 35, 134, 38, 236, - 35, 121, 227, 208, 251, 219, 191, 1, 172, 22, - 209, 238, 249, 49, 0, 0}; + 106, 150, 235, 70, 141, 195, 224, 95, 171, 34, + 24, 135, 163, 112, 56, 186, 140, 194, 11, 248, + 23, 92, 69, 97, 232, 121, 249, 98, 89, 213, + 173, 90, 84, 217, 170, 208, 42, 246, 218, 188, + 45, 116, 164, 124, 198, 114, 166, 94, 221, 221, + 189, 81, 203, 186, 106, 171, 180, 42, 84, 147, + 206, 245, 66, 251, 202, 123, 208, 117, 147, 87, + 101, 164, 194, 193, 104, 16, 42, 175, 76, 22, + 176, 106, 222, 182, 75, 111, 2, 88, 154, 77, + 153, 6, 213, 50, 82, 211, 85, 153, 170, 152, + 182, 120, 91, 101, 27, 53, 44, 170, 52, 1, + 60, 109, 210, 106, 4, 92, 149, 133, 110, 26, + 133, 0, 67, 26, 84, 113, 181, 212, 37, 13, + 56, 163, 195, 180, 168, 26, 125, 27, 169, 141, + 110, 38, 202, 163, 177, 200, 93, 197, 67, 195, + 100, 157, 220, 195, 68, 84, 235, 36, 11, 136, + 8, 26, 81, 94, 86, 241, 254, 94, 62, 229, + 205, 101, 221, 141, 122, 130, 176, 27, 21, 103, + 85, 80, 235, 159, 87, 186, 225, 125, 97, 23, + 135, 182, 91, 181, 78, 242, 86, 197, 66, 76, + 85, 150, 58, 109, 129, 127, 33, 97, 169, 211, + 97, 155, 47, 116, 181, 130, 117, 49, 74, 33, + 208, 117, 93, 213, 202, 191, 227, 81, 31, 208, + 225, 254, 145, 74, 65, 79, 204, 29, 146, 146, + 20, 5, 74, 75, 23, 128, 78, 232, 202, 203, + 105, 53, 156, 3, 77, 32, 97, 245, 228, 69, + 85, 182, 186, 108, 131, 187, 205, 210, 50, 233, + 66, 12, 251, 0, 203, 164, 110, 244, 30, 68, + 125, 176, 216, 243, 91, 253, 174, 29, 250, 170, + 157, 215, 43, 229, 127, 161, 210, 57, 46, 108, + 111, 126, 188, 251, 38, 184, 246, 189, 9, 41, + 145, 9, 110, 43, 192, 87, 231, 229, 236, 132, + 36, 8, 51, 157, 12, 89, 43, 42, 166, 191, + 70, 108, 6, 106, 75, 7, 198, 22, 244, 3, + 208, 33, 127, 78, 38, 198, 32, 72, 92, 100, + 57, 235, 188, 77, 231, 195, 76, 79, 147, 85, + 209, 42, 2, 27, 182, 76, 181, 200, 93, 137, + 198, 60, 71, 101, 12, 199, 114, 157, 38, 69, + 163, 145, 130, 172, 42, 201, 164, 235, 21, 253, + 100, 42, 187, 223, 172, 162, 152, 255, 70, 14, + 10, 177, 57, 158, 247, 246, 143, 71, 170, 68, + 236, 104, 88, 244, 91, 100, 38, 123, 35, 122, + 50, 131, 61, 172, 11, 199, 68, 43, 193, 208, + 55, 54, 71, 182, 214, 26, 141, 60, 246, 112, + 60, 234, 113, 102, 193, 197, 246, 9, 83, 99, + 207, 131, 157, 54, 135, 2, 45, 172, 220, 4, + 184, 59, 90, 235, 173, 138, 58, 16, 222, 42, + 238, 159, 155, 173, 105, 224, 194, 204, 56, 112, + 234, 168, 146, 80, 57, 240, 135, 33, 23, 248, + 63, 86, 181, 138, 17, 32, 226, 243, 166, 152, + 9, 187, 29, 106, 103, 174, 211, 123, 208, 103, + 179, 172, 74, 80, 147, 157, 66, 81, 174, 193, + 255, 232, 163, 72, 25, 98, 23, 171, 115, 214, + 101, 107, 176, 228, 192, 28, 47, 207, 210, 226, + 88, 77, 81, 85, 247, 171, 165, 235, 135, 104, + 10, 73, 20, 251, 139, 247, 160, 221, 168, 35, + 212, 153, 133, 219, 244, 185, 86, 9, 156, 71, + 138, 5, 219, 243, 80, 44, 209, 205, 81, 238, + 187, 243, 183, 141, 61, 171, 144, 95, 115, 74, + 182, 249, 55, 140, 136, 69, 35, 234, 192, 245, + 94, 63, 232, 26, 28, 189, 34, 244, 153, 234, + 220, 158, 127, 140, 89, 94, 187, 143, 24, 179, + 125, 150, 180, 9, 158, 187, 188, 157, 3, 118, + 176, 80, 21, 231, 224, 158, 102, 186, 190, 221, + 231, 187, 82, 241, 93, 133, 46, 103, 237, 124, + 31, 68, 91, 39, 101, 51, 213, 117, 160, 203, + 180, 194, 45, 192, 175, 251, 233, 124, 85, 222, + 235, 204, 159, 252, 197, 108, 130, 162, 202, 227, + 234, 34, 191, 180, 107, 171, 191, 95, 191, 252, + 159, 177, 161, 206, 153, 160, 49, 177, 67, 66, + 95, 71, 32, 91, 76, 27, 151, 228, 249, 223, + 226, 126, 73, 201, 94, 76, 77, 225, 3, 90, + 233, 135, 125, 144, 195, 2, 34, 97, 50, 35, + 127, 33, 177, 0, 124, 207, 253, 9, 243, 11, + 110, 134, 126, 222, 42, 11, 38, 95, 34, 149, + 252, 4, 22, 104, 198, 133, 14, 222, 235, 4, + 93, 49, 243, 247, 60, 77, 49, 210, 122, 121, + 6, 63, 222, 152, 100, 195, 75, 234, 217, 40, + 50, 107, 29, 167, 186, 197, 193, 221, 188, 174, + 214, 127, 144, 5, 112, 227, 219, 102, 97, 247, + 117, 133, 39, 39, 169, 219, 252, 5, 24, 117, + 75, 2, 164, 253, 204, 73, 123, 90, 235, 118, + 85, 151, 141, 137, 157, 167, 68, 64, 59, 175, + 192, 55, 174, 171, 58, 59, 49, 19, 19, 229, + 191, 28, 204, 6, 234, 31, 47, 239, 62, 87, + 175, 94, 62, 255, 250, 115, 245, 230, 187, 31, + 238, 148, 110, 211, 1, 172, 105, 65, 6, 26, + 60, 206, 52, 47, 180, 179, 230, 215, 127, 150, + 42, 77, 64, 231, 213, 212, 12, 126, 14, 1, + 73, 233, 38, 77, 150, 104, 255, 57, 228, 45, + 186, 6, 81, 44, 192, 162, 159, 106, 216, 96, + 213, 232, 233, 170, 192, 112, 94, 129, 177, 215, + 121, 166, 59, 104, 220, 236, 116, 160, 94, 36, + 53, 194, 156, 252, 6, 114, 54, 30, 66, 132, + 4, 9, 161, 112, 102, 102, 158, 66, 190, 16, + 244, 88, 81, 203, 36, 175, 27, 228, 84, 78, + 172, 138, 49, 250, 88, 113, 231, 101, 82, 111, + 78, 40, 110, 34, 11, 6, 161, 0, 3, 70, + 147, 164, 188, 230, 131, 14, 60, 164, 36, 221, + 76, 37, 171, 182, 90, 36, 109, 14, 225, 174, + 216, 0, 165, 47, 23, 203, 118, 35, 251, 2, + 66, 8, 65, 239, 146, 180, 45, 54, 170, 200, + 193, 188, 112, 135, 1, 48, 33, 145, 22, 14, + 3, 68, 41, 82, 51, 127, 141, 96, 136, 204, + 18, 242, 207, 37, 136, 137, 36, 137, 178, 82, + 162, 162, 79, 124, 5, 92, 136, 127, 66, 209, + 223, 42, 163, 136, 18, 18, 39, 200, 150, 139, + 76, 70, 240, 140, 201, 23, 207, 39, 27, 24, + 66, 66, 236, 171, 23, 223, 191, 254, 6, 77, + 7, 208, 234, 4, 92, 58, 105, 93, 40, 158, + 168, 206, 1, 215, 26, 194, 76, 38, 52, 194, + 185, 65, 204, 4, 74, 52, 8, 135, 136, 108, + 34, 153, 151, 149, 173, 145, 50, 165, 104, 70, + 184, 102, 118, 27, 175, 223, 151, 45, 36, 248, + 138, 221, 233, 173, 93, 98, 55, 73, 150, 238, + 82, 28, 86, 86, 112, 206, 86, 50, 223, 163, + 169, 191, 84, 134, 39, 102, 57, 7, 164, 221, + 51, 244, 134, 45, 117, 251, 16, 129, 10, 200, + 155, 81, 249, 0, 22, 99, 244, 137, 233, 182, + 66, 255, 207, 165, 6, 252, 138, 186, 60, 28, + 232, 129, 25, 183, 54, 160, 80, 161, 8, 206, + 4, 140, 136, 82, 217, 0, 14, 207, 194, 186, + 220, 234, 237, 79, 224, 245, 209, 41, 161, 55, + 90, 2, 121, 254, 103, 195, 207, 128, 6, 254, + 25, 188, 224, 20, 25, 134, 87, 237, 20, 146, + 100, 229, 189, 170, 144, 9, 177, 18, 66, 143, + 155, 6, 121, 166, 190, 252, 187, 186, 14, 73, + 185, 108, 102, 196, 29, 19, 0, 107, 64, 181, + 145, 223, 91, 32, 185, 99, 15, 10, 133, 245, + 99, 3, 49, 237, 249, 140, 148, 204, 21, 25, + 228, 230, 202, 229, 132, 69, 52, 236, 231, 35, + 253, 160, 239, 185, 161, 50, 34, 193, 13, 77, + 154, 21, 20, 121, 169, 183, 199, 168, 136, 200, + 68, 132, 24, 171, 35, 193, 209, 228, 191, 24, + 224, 140, 118, 162, 175, 92, 250, 113, 54, 188, + 174, 115, 73, 195, 134, 59, 165, 210, 174, 23, + 101, 78, 228, 204, 129, 101, 177, 147, 163, 232, + 201, 210, 73, 192, 11, 124, 58, 156, 244, 149, + 199, 171, 196, 182, 80, 74, 68, 111, 64, 91, + 7, 89, 158, 96, 45, 213, 47, 60, 209, 133, + 41, 199, 120, 246, 154, 13, 151, 78, 12, 27, + 199, 160, 105, 249, 206, 46, 238, 169, 67, 106, + 196, 51, 167, 234, 253, 214, 240, 147, 37, 232, + 237, 20, 40, 170, 150, 88, 43, 90, 20, 226, + 189, 223, 171, 85, 93, 128, 29, 63, 181, 204, + 25, 76, 19, 23, 154, 61, 174, 64, 117, 6, + 219, 223, 210, 142, 199, 147, 254, 234, 158, 203, + 125, 111, 14, 171, 217, 212, 186, 140, 45, 116, + 118, 28, 213, 120, 106, 178, 138, 94, 70, 222, + 19, 169, 8, 19, 181, 139, 135, 221, 250, 179, + 108, 164, 178, 177, 66, 163, 34, 219, 232, 85, + 53, 86, 242, 187, 197, 59, 226, 137, 212, 174, + 197, 240, 81, 118, 79, 113, 223, 140, 237, 33, + 216, 103, 198, 68, 197, 129, 250, 101, 199, 103, + 152, 82, 28, 99, 137, 197, 154, 65, 246, 49, + 205, 75, 78, 9, 233, 36, 64, 64, 42, 166, + 32, 83, 152, 27, 243, 220, 176, 77, 242, 2, + 249, 198, 153, 49, 76, 113, 70, 180, 231, 144, + 241, 255, 157, 114, 26, 91, 1, 96, 6, 117, + 235, 224, 7, 68, 91, 231, 213, 126, 1, 32, + 88, 185, 74, 219, 33, 20, 9, 115, 132, 148, + 179, 36, 187, 88, 178, 157, 83, 121, 244, 80, + 1, 211, 7, 82, 236, 216, 57, 238, 251, 65, + 8, 181, 36, 237, 39, 7, 96, 250, 91, 20, + 73, 211, 6, 11, 200, 206, 167, 57, 4, 244, + 216, 241, 34, 73, 219, 234, 5, 158, 24, 64, + 137, 35, 39, 251, 215, 76, 40, 142, 44, 32, + 123, 217, 17, 218, 248, 80, 161, 135, 211, 94, + 215, 202, 113, 195, 110, 194, 106, 69, 156, 152, + 169, 41, 91, 255, 81, 33, 70, 191, 236, 186, + 125, 254, 17, 11, 116, 252, 50, 68, 195, 33, + 91, 131, 72, 38, 241, 223, 87, 241, 39, 62, + 36, 1, 239, 193, 213, 143, 160, 0, 105, 170, + 133, 230, 128, 30, 123, 56, 162, 158, 238, 247, + 184, 79, 112, 248, 84, 121, 239, 21, 128, 141, + 1, 58, 246, 195, 115, 68, 227, 135, 23, 128, + 230, 208, 170, 178, 10, 68, 242, 180, 246, 16, + 88, 117, 127, 138, 252, 17, 242, 51, 36, 197, + 15, 207, 14, 147, 210, 104, 29, 84, 24, 218, + 152, 30, 34, 228, 48, 1, 157, 154, 12, 248, + 197, 97, 240, 21, 254, 168, 171, 119, 155, 163, + 228, 214, 58, 203, 107, 240, 4, 29, 209, 231, + 76, 244, 17, 249, 173, 74, 200, 20, 231, 85, + 13, 150, 107, 9, 185, 58, 12, 78, 68, 4, + 184, 228, 40, 37, 105, 145, 163, 85, 83, 89, + 208, 81, 115, 132, 193, 134, 10, 202, 222, 130, + 67, 160, 210, 72, 13, 80, 132, 13, 100, 163, + 224, 147, 128, 116, 118, 192, 210, 102, 65, 3, + 59, 96, 129, 213, 125, 87, 71, 187, 193, 244, + 70, 61, 153, 115, 31, 102, 111, 167, 130, 76, + 252, 131, 234, 211, 126, 43, 20, 93, 125, 252, + 200, 98, 222, 194, 89, 61, 49, 153, 55, 184, + 48, 138, 40, 116, 102, 251, 45, 80, 116, 187, + 136, 124, 95, 107, 214, 174, 254, 11, 9, 246, + 164, 95, 193, 22, 168, 236, 89, 248, 79, 72, + 59, 93, 53, 80, 220, 56, 4, 128, 95, 202, + 96, 34, 60, 44, 56, 41, 5, 62, 72, 116, + 166, 203, 66, 225, 141, 59, 19, 20, 211, 98, + 44, 103, 144, 236, 73, 143, 23, 143, 1, 247, + 218, 219, 141, 227, 21, 36, 39, 179, 169, 15, + 96, 99, 161, 65, 112, 180, 221, 235, 215, 144, + 37, 96, 36, 239, 24, 161, 244, 95, 164, 202, + 29, 80, 227, 234, 93, 208, 227, 237, 154, 239, + 13, 2, 76, 35, 115, 228, 125, 145, 148, 171, + 164, 160, 120, 84, 163, 112, 185, 119, 243, 136, + 220, 221, 6, 142, 211, 79, 65, 219, 233, 156, + 136, 114, 207, 190, 114, 207, 181, 234, 156, 199, + 71, 88, 5, 177, 185, 163, 213, 157, 221, 31, + 19, 197, 115, 0, 69, 126, 89, 118, 84, 9, + 91, 39, 162, 54, 186, 253, 40, 41, 96, 63, + 233, 16, 211, 143, 16, 20, 155, 94, 154, 204, + 251, 20, 25, 39, 31, 71, 133, 27, 85, 76, + 163, 250, 191, 237, 200, 60, 27, 187, 14, 157, + 246, 227, 10, 123, 3, 75, 241, 70, 238, 207, + 210, 84, 207, 8, 127, 151, 173, 36, 224, 3, + 150, 127, 50, 53, 93, 34, 242, 63, 19, 121, + 200, 147, 25, 135, 246, 199, 138, 96, 46, 113, + 63, 228, 70, 1, 19, 75, 220, 123, 111, 112, + 127, 84, 81, 210, 3, 145, 139, 16, 193, 209, + 215, 209, 71, 232, 199, 116, 137, 59, 79, 67, + 77, 98, 24, 230, 146, 38, 82, 159, 252, 26, + 126, 29, 62, 255, 141, 71, 198, 206, 144, 59, + 220, 175, 96, 4, 80, 250, 178, 219, 165, 72, + 196, 29, 160, 119, 104, 13, 219, 253, 39, 239, + 206, 244, 236, 95, 74, 207, 30, 198, 94, 99, + 190, 255, 173, 28, 121, 22, 184, 237, 25, 177, + 207, 239, 85, 161, 166, 49, 84, 234, 117, 176, + 170, 115, 21, 99, 125, 109, 137, 163, 194, 103, + 226, 214, 253, 221, 181, 243, 78, 1, 184, 167, + 40, 21, 172, 187, 133, 151, 198, 248, 12, 83, + 133, 221, 152, 151, 209, 221, 120, 87, 80, 202, + 164, 140, 99, 79, 232, 9, 74, 233, 49, 245, + 255, 106, 195, 27, 8, 58, 233, 174, 222, 65, + 40, 32, 45, 60, 90, 211, 26, 210, 5, 50, + 146, 158, 77, 252, 102, 75, 25, 183, 214, 253, + 224, 179, 219, 203, 19, 12, 237, 212, 174, 186, + 113, 90, 87, 118, 198, 180, 186, 110, 122, 141, + 44, 219, 145, 147, 246, 134, 133, 198, 162, 211, + 219, 186, 98, 239, 238, 220, 62, 56, 226, 99, + 247, 154, 200, 36, 98, 130, 46, 3, 144, 36, + 106, 14, 94, 13, 78, 243, 204, 239, 61, 8, + 248, 240, 240, 175, 156, 152, 188, 175, 225, 97, + 142, 57, 110, 73, 113, 187, 90, 65, 186, 134, + 23, 77, 1, 86, 203, 106, 113, 63, 130, 207, + 88, 181, 117, 2, 214, 87, 75, 255, 3, 221, + 193, 129, 206, 135, 61, 41, 123, 46, 255, 15, + 182, 69, 220, 10, 149, 122, 215, 177, 193, 115, + 252, 38, 12, 239, 57, 136, 177, 174, 116, 246, + 128, 129, 158, 147, 35, 81, 153, 22, 175, 105, + 17, 51, 232, 10, 130, 71, 209, 229, 58, 93, + 245, 43, 247, 121, 244, 180, 193, 17, 6, 85, + 189, 115, 253, 46, 200, 242, 89, 222, 54, 252, + 216, 192, 52, 80, 64, 82, 228, 74, 116, 153, + 73, 46, 100, 214, 245, 91, 11, 248, 189, 105, + 86, 250, 196, 197, 108, 72, 112, 134, 110, 84, + 200, 55, 81, 29, 89, 168, 140, 216, 184, 55, + 245, 84, 116, 2, 73, 137, 127, 42, 59, 67, + 101, 77, 68, 27, 117, 193, 168, 117, 105, 14, + 109, 118, 165, 245, 4, 118, 133, 105, 150, 27, + 157, 153, 190, 178, 157, 63, 28, 5, 31, 51, + 208, 195, 117, 1, 186, 114, 157, 212, 202, 116, + 55, 228, 65, 195, 30, 205, 136, 8, 28, 157, + 220, 231, 75, 180, 208, 200, 42, 194, 225, 51, + 7, 223, 13, 134, 64, 221, 21, 106, 107, 161, + 117, 27, 147, 238, 245, 94, 72, 227, 6, 151, + 130, 73, 108, 224, 108, 110, 13, 69, 230, 141, + 133, 60, 138, 48, 63, 108, 52, 223, 255, 2, + 199, 134, 78, 137, 219, 114, 35, 124, 168, 71, + 229, 57, 86, 235, 24, 180, 200, 224, 192, 170, + 47, 111, 172, 81, 219, 229, 135, 114, 21, 139, + 116, 235, 84, 156, 141, 195, 48, 252, 195, 74, + 148, 154, 200, 102, 11, 70, 145, 7, 25, 219, + 130, 149, 232, 221, 157, 175, 200, 188, 226, 81, + 254, 104, 124, 118, 126, 113, 121, 117, 253, 44, + 76, 222, 166, 153, 158, 62, 255, 234, 197, 215, + 47, 191, 241, 165, 5, 47, 1, 41, 150, 71, + 91, 28, 149, 236, 195, 175, 87, 64, 120, 125, + 135, 65, 155, 34, 52, 209, 108, 175, 100, 31, + 70, 131, 145, 111, 250, 167, 196, 111, 179, 105, + 90, 189, 64, 209, 149, 89, 82, 103, 28, 8, + 112, 62, 40, 241, 186, 204, 227, 56, 240, 233, + 208, 92, 127, 114, 169, 232, 56, 190, 120, 162, + 188, 94, 251, 25, 73, 161, 71, 83, 145, 26, + 93, 152, 12, 238, 192, 110, 24, 227, 3, 201, + 240, 182, 210, 57, 111, 39, 149, 235, 246, 52, + 137, 69, 146, 182, 24, 111, 88, 15, 246, 62, + 202, 205, 45, 220, 99, 181, 245, 148, 198, 125, + 69, 99, 12, 27, 223, 140, 176, 101, 169, 56, + 77, 176, 86, 224, 48, 99, 110, 184, 169, 83, + 102, 31, 150, 240, 195, 177, 90, 79, 185, 156, + 223, 190, 201, 161, 148, 65, 206, 70, 175, 134, + 64, 244, 92, 246, 195, 28, 62, 45, 115, 86, + 154, 126, 183, 67, 221, 110, 220, 149, 30, 130, + 125, 167, 39, 20, 75, 8, 164, 155, 148, 189, + 210, 128, 140, 54, 41, 196, 215, 8, 199, 212, + 81, 144, 219, 255, 136, 102, 229, 156, 216, 159, + 221, 133, 132, 25, 130, 229, 244, 55, 226, 75, + 87, 51, 104, 80, 10, 54, 94, 109, 32, 33, + 1, 92, 165, 240, 51, 118, 95, 178, 129, 185, + 130, 255, 45, 164, 164, 25, 190, 11, 214, 235, + 117, 128, 56, 49, 59, 163, 8, 168, 179, 238, + 113, 27, 223, 219, 77, 24, 241, 196, 73, 121, + 254, 95, 245, 186, 231, 226, 139, 105, 100, 209, + 125, 176, 222, 143, 227, 17, 171, 64, 238, 14, + 24, 133, 115, 27, 100, 222, 131, 56, 57, 78, + 44, 89, 169, 84, 33, 152, 25, 195, 241, 187, + 117, 36, 69, 201, 92, 79, 20, 223, 66, 204, + 199, 228, 133, 102, 146, 44, 131, 179, 220, 244, + 5, 226, 214, 22, 198, 111, 231, 101, 142, 245, + 149, 215, 229, 74, 145, 50, 175, 251, 216, 179, + 152, 103, 164, 101, 213, 115, 43, 110, 254, 206, + 222, 68, 220, 55, 250, 23, 231, 17, 92, 39, + 124, 175, 175, 29, 119, 71, 206, 218, 44, 94, + 188, 81, 102, 212, 128, 175, 77, 193, 211, 206, + 233, 222, 120, 139, 125, 79, 50, 104, 119, 194, + 228, 216, 224, 158, 166, 221, 155, 5, 192, 17, + 13, 135, 44, 26, 188, 72, 118, 238, 144, 57, + 100, 245, 30, 243, 137, 169, 208, 4, 63, 23, + 148, 56, 68, 10, 149, 43, 16, 211, 83, 36, + 51, 63, 236, 7, 167, 213, 170, 204, 110, 185, + 68, 112, 20, 220, 29, 142, 29, 105, 116, 175, + 147, 14, 99, 221, 178, 22, 167, 76, 221, 115, + 135, 188, 119, 216, 112, 204, 58, 118, 109, 196, + 56, 122, 195, 32, 102, 123, 143, 251, 249, 142, + 191, 61, 237, 188, 14, 61, 7, 112, 114, 75, + 111, 169, 163, 138, 241, 84, 81, 154, 149, 209, + 180, 67, 172, 125, 174, 96, 184, 229, 196, 195, + 190, 6, 166, 223, 114, 210, 224, 196, 214, 251, + 169, 180, 71, 77, 58, 115, 136, 218, 96, 221, + 45, 46, 44, 67, 4, 125, 107, 122, 114, 238, + 227, 214, 173, 194, 139, 5, 40, 239, 89, 237, + 36, 211, 206, 180, 73, 242, 244, 168, 12, 29, + 30, 119, 242, 45, 0, 11, 157, 199, 107, 111, + 139, 36, 189, 199, 135, 228, 33, 62, 36, 79, + 171, 164, 136, 212, 229, 249, 128, 254, 41, 111, + 86, 39, 32, 139, 209, 248, 122, 32, 31, 80, + 166, 94, 183, 152, 141, 143, 174, 194, 129, 124, + 32, 37, 201, 139, 7, 26, 124, 54, 30, 200, + 7, 6, 203, 106, 29, 169, 241, 121, 56, 144, + 15, 4, 183, 57, 5, 183, 241, 197, 197, 64, + 62, 72, 1, 70, 24, 36, 128, 126, 206, 106, + 173, 233, 101, 59, 2, 32, 73, 155, 196, 254, + 36, 128, 26, 179, 9, 154, 196, 233, 141, 46, + 10, 218, 70, 80, 134, 152, 102, 225, 155, 141, + 196, 0, 209, 162, 50, 121, 216, 240, 38, 196, + 4, 36, 240, 83, 122, 61, 15, 92, 193, 138, + 86, 35, 219, 97, 199, 228, 34, 169, 43, 244, + 38, 52, 143, 16, 85, 145, 63, 232, 78, 18, + 48, 178, 92, 213, 203, 66, 27, 16, 90, 85, + 65, 202, 54, 19, 246, 70, 23, 48, 72, 11, + 179, 58, 121, 27, 169, 171, 241, 0, 254, 141, + 46, 129, 223, 186, 90, 35, 234, 179, 103, 131, + 203, 103, 32, 41, 148, 250, 116, 170, 97, 221, + 213, 229, 96, 124, 57, 32, 113, 234, 178, 4, + 6, 70, 151, 225, 224, 122, 60, 56, 191, 192, + 246, 79, 190, 104, 144, 164, 241, 24, 88, 10, + 7, 151, 0, 246, 144, 87, 5, 190, 137, 1, + 196, 225, 224, 89, 136, 168, 115, 84, 230, 232, + 234, 122, 112, 118, 14, 255, 128, 202, 188, 188, + 23, 130, 64, 165, 99, 204, 156, 103, 64, 146, + 200, 43, 188, 24, 160, 86, 218, 132, 240, 2, + 121, 215, 231, 131, 209, 25, 234, 68, 231, 134, + 145, 49, 178, 252, 12, 232, 206, 31, 42, 60, + 24, 86, 119, 184, 18, 147, 61, 92, 123, 33, + 58, 62, 131, 177, 251, 121, 114, 159, 35, 17, + 192, 28, 126, 198, 151, 168, 179, 183, 85, 129, + 54, 62, 58, 31, 179, 148, 71, 100, 13, 58, + 105, 209, 66, 112, 23, 28, 7, 89, 36, 63, + 175, 128, 241, 115, 20, 30, 124, 16, 31, 190, + 225, 66, 151, 29, 14, 206, 73, 240, 235, 132, + 236, 239, 26, 65, 0, 209, 249, 24, 67, 241, + 50, 217, 136, 194, 97, 252, 236, 10, 68, 120, + 143, 134, 203, 60, 179, 9, 44, 114, 204, 113, + 25, 237, 37, 16, 192, 100, 145, 241, 157, 93, + 15, 46, 174, 17, 29, 112, 14, 21, 125, 144, + 50, 177, 180, 148, 63, 98, 104, 194, 62, 146, + 55, 14, 189, 191, 253, 27, 136, 83, 209, 227, + 249, 49, 0, 0}; diff --git a/src/os/host-main.c b/src/os/host-main.c index 97ae98e..e12ed81 100644 --- a/src/os/host-main.c +++ b/src/os/host-main.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ @@ -79,24 +79,34 @@ void Host_Crash(REBYTE *reason) { ** ***********************************************************************/ -#ifdef EMBEDDED_EXTENSION +//#define EXT_EXAMPLE +#ifdef EXT_EXAMPLE char *RX_Spec = "REBOL [\n" "Title: {Hosted extension}\n" "Name: hosted\n" "Type: extension\n" - "Exports: [add3 mul3]\n" + "Exports: [add3 mul3 tsto]\n" "]\n" "add3: command [a b c]\n" "mul3: command [a b c]\n" + "vers: command [{Returns version field from object.} obj [object!]]\n" ; -RXIEXT int RX_Call(int cmd, RXIFRM *frm) { - if (cmd == 1) { +RXIEXT int RX_Call(int cmd, RXIFRM *frm, void *data) { + switch (cmd) { + case 0: RXA_INT64(frm, 1) = RXA_INT64(frm, 1) + RXA_INT64(frm, 2) + RXA_INT64(frm, 3); - } else { + break; + case 1: RXA_INT64(frm, 1) = RXA_INT64(frm, 1) * RXA_INT64(frm, 2) * RXA_INT64(frm, 3); + break; + case 2: + RXA_TYPE(frm, 1) = RXI_GET_FIELD(RXA_OBJECT(frm, 1), RXI_MAP_WORD("version"), &RXA_ARG(frm, 1)); + break; + default: + return RXR_NO_COMMAND; } return RXR_VALUE; } @@ -163,7 +173,7 @@ int main(int argc, char **argv) Init_Graphics(); #endif -#ifdef EMBEDDED_EXTENSION +#ifdef EXT_EXAMPLE Reb_Extend(&RX_Spec[0], &RX_Call); #endif diff --git a/src/os/host-stdio.c b/src/os/host-stdio.c index 3a007b7..44be23d 100644 --- a/src/os/host-stdio.c +++ b/src/os/host-stdio.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/posix/dev-file.c b/src/os/posix/dev-file.c index 73da579..9583d61 100644 --- a/src/os/posix/dev-file.c +++ b/src/os/posix/dev-file.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/posix/dev-stdio.c b/src/os/posix/dev-stdio.c index 948c501..f4cf4e6 100644 --- a/src/os/posix/dev-stdio.c +++ b/src/os/posix/dev-stdio.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/posix/host-lib.c b/src/os/posix/host-lib.c index f33917c..877fc1d 100644 --- a/src/os/posix/host-lib.c +++ b/src/os/posix/host-lib.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/posix/host-readline.c b/src/os/posix/host-readline.c index f617484..841b9cc 100644 --- a/src/os/posix/host-readline.c +++ b/src/os/posix/host-readline.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/dev-clipboard.c b/src/os/win32/dev-clipboard.c index b52751f..d5ce781 100644 --- a/src/os/win32/dev-clipboard.c +++ b/src/os/win32/dev-clipboard.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/dev-event.c b/src/os/win32/dev-event.c index b582dd6..85e3ad5 100644 --- a/src/os/win32/dev-event.c +++ b/src/os/win32/dev-event.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/dev-file.c b/src/os/win32/dev-file.c index 9fa2270..d82a98b 100644 --- a/src/os/win32/dev-file.c +++ b/src/os/win32/dev-file.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/dev-stdio.c b/src/os/win32/dev-stdio.c index cc84c1a..f5df001 100644 --- a/src/os/win32/dev-stdio.c +++ b/src/os/win32/dev-stdio.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/host-event.c b/src/os/win32/host-event.c index 284dcae..9dd5761 100644 --- a/src/os/win32/host-event.c +++ b/src/os/win32/host-event.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/host-graphics.c b/src/os/win32/host-graphics.c index da6d039..0d49227 100644 --- a/src/os/win32/host-graphics.c +++ b/src/os/win32/host-graphics.c @@ -72,8 +72,8 @@ extern REBINT Show_Gob(REBGOB *gob); case CMD_INIT_GRAPHICS: Gob_Root = (REBGOB*)RXA_SERIES(frm, 1); // system/view/screen-gob - Gob_Root->size.x = GetSystemMetrics(SM_CXSCREEN); - Gob_Root->size.y = GetSystemMetrics(SM_CYSCREEN); + Gob_Root->size.x = (REBD32)GetSystemMetrics(SM_CXSCREEN); + Gob_Root->size.y = (REBD32)GetSystemMetrics(SM_CYSCREEN); break; default: @@ -94,11 +94,11 @@ extern REBINT Show_Gob(REBGOB *gob); switch (cmd) { case CMD_BOX: - agg_box(data, &RXA_PAIR(frm, 1), &RXA_PAIR(frm, 2), 0); + agg_box(data, RXA_PAIR(frm, 1), RXA_PAIR(frm, 2), 0); break; case CMD_CIRCLE: - agg_circle(data, &RXA_PAIR(frm, 1), RXA_DEC64(frm, 2), RXA_DEC64(frm, 3)); + agg_circle(data, RXA_PAIR(frm, 1), RXA_PAIR(frm, 2)); break; case CMD_LINES: @@ -111,9 +111,9 @@ extern REBINT Show_Gob(REBGOB *gob); for (n = 0; type = RXI_GET_VALUE(blk, n, &val); n++) { if (type == RXT_PAIR) { if (n > 0) - agg_add_vertex(data, (REBDEC)(val.int32a), (REBDEC)(val.int32b)); + agg_add_vertex(data, val.pair); else - agg_begin_poly(data, (REBDEC)(val.int32a), (REBDEC)(val.int32b)); + agg_begin_poly(data, val.pair); } } } diff --git a/src/os/win32/host-lib.c b/src/os/win32/host-lib.c index a9079c0..e61aa75 100644 --- a/src/os/win32/host-lib.c +++ b/src/os/win32/host-lib.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ diff --git a/src/os/win32/host-window.c b/src/os/win32/host-window.c index d241ee9..978bafc 100644 --- a/src/os/win32/host-window.c +++ b/src/os/win32/host-window.c @@ -1,7 +1,7 @@ /*********************************************************************** ** ** REBOL 3.0 "Invasion" -** Copyright 2009 REBOL Technologies +** Copyright 2010 REBOL Technologies ** All rights reserved. ** ************************************************************************ @@ -30,6 +30,7 @@ #endif #include +#include #include "reb-host.h" #include "host-lib.h" @@ -68,7 +69,7 @@ static REBOOL Custom_Cursor = FALSE; REBGOB *Gob_Root; // Top level GOB (the screen) HCURSOR Cursor; // active cursor image object -REBOL_OS_METRICS Metrics; // window system metrics (sizes, etc.) +//REBOL_OS_METRICS Metrics; // window system metrics (sizes, etc.) REBPAR Zero_Pair = {0, 0}; void* Rich_Text; // temp //void* Effects; @@ -259,39 +260,41 @@ static void Free_Window(REBGOB *gob) { if (windex < 0) Host_Crash("Too many windows"); CLEAR_GOB_STATE(gob); - x = GOB_X(gob); - y = GOB_Y(gob); - w = GOB_W(gob); - h = GOB_H(gob); + x = GOB_X_INT(gob); + y = GOB_Y_INT(gob); + w = GOB_W_INT(gob); + h = GOB_H_INT(gob); SET_GOB_STATE(gob, GOBS_NEW); // Setup window options: - options = WS_POPUP; + options = WS_POPUP; + +// Note: Metrics temporarily disabled in A100 if (!GET_FLAGS(gob->flags, GOBF_NO_TITLE, GOBF_NO_BORDER)) { options |= WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU; - h += Metrics.title_size.y; - y -= Metrics.title_size.y; +// h += Metrics.title_size.y; +// y -= Metrics.title_size.y; } if (GET_GOB_FLAG(gob, GOBF_RESIZE)) { options |= WS_SIZEBOX | WS_BORDER; - x -= Metrics.border_size.x; - y -= Metrics.border_size.y; - w += Metrics.border_size.x * 2; - h += Metrics.border_size.y * 2; +// x -= Metrics.border_size.x; +// y -= Metrics.border_size.y; +// w += Metrics.border_size.x * 2; +// h += Metrics.border_size.y * 2; if (!GET_GOB_FLAG(gob, GOBF_NO_TITLE)) options |= WS_MAXIMIZEBOX; } else if (!GET_GOB_FLAG(gob, GOBF_NO_BORDER)) { options |= WS_BORDER; if (!GET_GOB_FLAG(gob, GOBF_NO_TITLE)){ - x -= Metrics.border_fixed.x; - y -= Metrics.border_fixed.y; - w += Metrics.border_fixed.x * 2; - h += Metrics.border_fixed.y * 2; +// x -= Metrics.border_fixed.x; +// y -= Metrics.border_fixed.y; +// w += Metrics.border_fixed.x * 2; +// h += Metrics.border_fixed.y * 2; } } @@ -437,10 +440,10 @@ static void Free_Window(REBGOB *gob) { //Get the new window size together with borders, tilebar etc. GetWindowInfo(window, &wi); - r.left = GOB_X(gob); - r.right = r.left + GOB_W(gob); - r.top = GOB_Y(gob); - r.bottom = r.top + GOB_H(gob); + r.left = GOB_X_INT(gob); + r.right = r.left + GOB_W_INT(gob); + r.top = GOB_Y_INT(gob); + r.bottom = r.top + GOB_H_INT(gob); AdjustWindowRect(&r, wi.dwStyle, FALSE); //Set the new size @@ -489,8 +492,8 @@ static void Free_Window(REBGOB *gob) { BitmapInfo.bmiHeader.biWidth = ssize.x; BitmapInfo.bmiHeader.biHeight = -(REBINT)dsize.y; #else - BitmapInfo.bmiHeader.biWidth = gob->size.x; - BitmapInfo.bmiHeader.biHeight = -(REBINT)gob->size.y; + BitmapInfo.bmiHeader.biWidth = ROUND_TO_INT(gob->size.x); + BitmapInfo.bmiHeader.biHeight = -ROUND_TO_INT(gob->size.y); #endif BitmapInfo.bmiHeader.biPlanes = 1; BitmapInfo.bmiHeader.biBitCount = 32; @@ -580,8 +583,9 @@ static void Free_Window(REBGOB *gob) { #ifdef NO_COMPOSITOR // Blit the current gob: - if (IS_GOB_IMAGE(gob)) - Blit_Rect(wingob, gob->offset, gob->size, GOB_BITMAP(gob), Zero_Pair, gob->size); + if (IS_GOB_IMAGE(gob)) { + Blit_Rect(wingob, gob->offset, gob->size, GOB_BITMAP(gob), Zero_Pair, gob->size); + } else { //if (IS_GOB_COLOR(gob)) Blit_Color(wingob, gob->offset, gob->size, (long)GOB_CONTENT(gob)); } @@ -614,6 +618,7 @@ static void Free_Window(REBGOB *gob) { { PAINTSTRUCT ps; REBGOB *gob; + REBPAR size; gob = (REBGOB *)GetWindowLong(window, GWL_USERDATA); @@ -623,8 +628,10 @@ static void Free_Window(REBGOB *gob) { #ifdef NO_COMPOSITOR Draw_Window(gob, gob); -#else - Blit_Rect(gob, Zero_Pair, gob->size, Get_Window_Buffer(GOB_COMPOSITOR(gob)), Zero_Pair, gob->size); +#else + size.x = ROUND_TO_INT(gob->size.x); + size.y = ROUND_TO_INT(gob->size.y); + Blit_Rect(gob, Zero_Pair, size, Get_Window_Buffer(GOB_COMPOSITOR(gob)), Zero_Pair, size); #endif EndPaint(window, (LPPAINTSTRUCT) &ps);