You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(38) |
Feb
(4) |
Mar
(11) |
Apr
(49) |
May
(81) |
Jun
(65) |
Jul
(36) |
Aug
(57) |
Sep
(63) |
Oct
(57) |
Nov
(49) |
Dec
(41) |
2006 |
Jan
(75) |
Feb
(80) |
Mar
(10) |
Apr
(13) |
May
(100) |
Jun
(100) |
Jul
(77) |
Aug
(87) |
Sep
(80) |
Oct
(124) |
Nov
(39) |
Dec
(41) |
2007 |
Jan
(20) |
Feb
(32) |
Mar
(32) |
Apr
(43) |
May
(146) |
Jun
(40) |
Jul
(49) |
Aug
(33) |
Sep
(25) |
Oct
(19) |
Nov
(11) |
Dec
(8) |
2008 |
Jan
(4) |
Feb
(11) |
Mar
(31) |
Apr
(40) |
May
(34) |
Jun
(24) |
Jul
(39) |
Aug
(104) |
Sep
(27) |
Oct
(35) |
Nov
(34) |
Dec
(97) |
2009 |
Jan
(75) |
Feb
(29) |
Mar
(45) |
Apr
(76) |
May
(121) |
Jun
(103) |
Jul
(67) |
Aug
(28) |
Sep
(22) |
Oct
(39) |
Nov
(9) |
Dec
(15) |
2010 |
Jan
(7) |
Feb
(39) |
Mar
(40) |
Apr
(57) |
May
(67) |
Jun
(69) |
Jul
(49) |
Aug
(68) |
Sep
(22) |
Oct
(7) |
Nov
(2) |
Dec
(10) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(4) |
May
(6) |
Jun
(10) |
Jul
(16) |
Aug
(23) |
Sep
(9) |
Oct
|
Nov
(28) |
Dec
(3) |
2012 |
Jan
(11) |
Feb
(10) |
Mar
(1) |
Apr
|
May
(4) |
Jun
(3) |
Jul
(3) |
Aug
(4) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
(7) |
Mar
(30) |
Apr
(4) |
May
(4) |
Jun
(8) |
Jul
(10) |
Aug
(4) |
Sep
|
Oct
(2) |
Nov
(24) |
Dec
(13) |
2014 |
Jan
(7) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(9) |
Jun
|
Jul
(3) |
Aug
(9) |
Sep
|
Oct
(2) |
Nov
|
Dec
(3) |
2015 |
Jan
(4) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
(1) |
Oct
(4) |
Nov
(7) |
Dec
(39) |
2016 |
Jan
(17) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(2) |
2017 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2018 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jos v.d.V. <jo...@us...> - 2007-06-02 11:59:39
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv15224 Modified Files: Struct200x.f extend.f Log Message: Jos: Layout correction. Index: extend.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/extend.f,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** extend.f 2 Jun 2007 11:43:54 -0000 1.23 --- extend.f 2 Jun 2007 11:59:32 -0000 1.24 *************** *** 6,10 **** sys-fload src\optinline \ inline optimiser fload src\primutil.f ! sys-fload src\struct200x.f \ forth 200x structs sys-fload src\module.f \ scoping support for modules sys-fload src\interpif.f \ interpretive conditionals --- 6,10 ---- sys-fload src\optinline \ inline optimiser fload src\primutil.f ! sys-fload src\struct200x.f \ forth 200x structs sys-fload src\module.f \ scoping support for modules sys-fload src\interpif.f \ interpretive conditionals Index: Struct200x.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/Struct200x.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Struct200x.f 2 Jun 2007 11:40:16 -0000 1.1 --- Struct200x.f 2 Jun 2007 11:59:32 -0000 1.2 *************** *** 42,46 **** does> ( addr -- addr+n1 ) @ + ; )) ! ' field+ alias +field \ Uses the ST optimizer : field: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) aligned cell +FIELD ; --- 42,46 ---- does> ( addr -- addr+n1 ) @ + ; )) ! ' field+ alias +field \ Uses the STC optimizer : field: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) aligned cell +FIELD ; |
From: Jos v.d.V. <jo...@us...> - 2007-06-02 11:53:50
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv12926 Removed Files: struct.f Log Message: Jos: Removed the old struct.f --- struct.f DELETED --- |
From: Jos v.d.V. <jo...@us...> - 2007-06-02 11:44:51
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv9104 Modified Files: extend.f Log Message: Jos: Adapted for Struct200x.f Index: extend.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/extend.f,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** extend.f 20 May 2007 15:42:50 -0000 1.22 --- extend.f 2 Jun 2007 11:43:54 -0000 1.23 *************** *** 6,10 **** sys-fload src\optinline \ inline optimiser fload src\primutil.f ! sys-fload src\struct.f \ forth 200x structs sys-fload src\module.f \ scoping support for modules sys-fload src\interpif.f \ interpretive conditionals --- 6,10 ---- sys-fload src\optinline \ inline optimiser fload src\primutil.f ! sys-fload src\struct200x.f \ forth 200x structs sys-fload src\module.f \ scoping support for modules sys-fload src\interpif.f \ interpretive conditionals |
From: Jos v.d.V. <jo...@us...> - 2007-06-02 11:40:29
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7930 Added Files: Struct200x.f Log Message: Jos: Renamed the file with the duplicate name and redefined +field as George Hubert hinted. --- NEW FILE: Struct200x.f --- \ $Id: Struct200x.f,v 1.1 2007/06/02 11:40:16 jos_ven Exp $ \ \ --------------------------- Change Block ------------------------------- \ \ \ ------------------------- End Change Block ----------------------------- \ \ Experimental: a fully optimising, STC based, ANS Forth compliant kernel \ \ Copyright [c] 2005 by Alex McDonald (alex at rivadpm dot com) \ \ This program is free software; you can redistribute it and/or modify it \ under the terms of the GNU General Public License as published by the \ Free Software Foundation; either version 2 of the License, or <at your \ option> any later version. \ \ This program is distributed in the hope that it will be useful, but \ WITHOUT ANY WARRANTY; without even the implied warranty of \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \ General Public License for more details. \ \ You should have received a copy of the GNU General Public License along \ with this program; if not, write to the Free Software Foundation, Inc., \ 675 Mass Ave, Cambridge, MA 02139, USA. \ \ ------------------------------------------------------------------------ \ RfD: Structures - Version 4 \ 6 February 2007, Stephen Pelc \ ------------------------------------------------------------------------ : begin-structure ( -- addr 0 ) create here 0 0 , does> ( -- size ) @ ; : end-structure ( addr n -- ) swap ! ; \ set size (( : +field ( n1 n2 "name" -- n3 ) \ ANSI version create over , + does> ( addr -- addr+n1 ) @ + ; )) ' field+ alias +field \ Uses the ST optimizer : field: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) aligned cell +FIELD ; : cfield: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) 1 chars +FIELD ; : bfield: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) 1 +FIELD ; : wfield: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) 2 +FIELD ; : lfield: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) 4 +FIELD ; : xfield: ( n1 <"name"> -- n2 ) ( addr -- 'addr ) 8 +FIELD ; |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv10832/doc/classes Modified Files: ADO.htm AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: - Doc's updated Index: Dialog.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Dialog.htm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Dialog.htm 29 Aug 2006 10:31:48 -0000 1.11 --- Dialog.htm 26 May 2007 10:24:12 -0000 1.12 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> *************** *** 65,69 **** </h2><pre><b><a name="3">:CLASS Dialog <SUPER Dialog&Control </a></b></pre><p>Dialog class. <br /> ! To use this class you have to create a ressource file (*.res) whitch must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. --- 67,71 ---- </h2><pre><b><a name="3">:CLASS Dialog <SUPER Dialog&Control </a></b></pre><p>Dialog class. <br /> ! To use this class you have to create a ressource file (*.res) which must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. *************** *** 82,86 **** </h2><pre><b><a name="9">:Class ModelessDialog <SUPER Dialog </a></b></pre><p>Modless Dialog class <br /> ! To use this class you have to create a ressource file (*.res) whitch must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. --- 84,88 ---- </h2><pre><b><a name="9">:Class ModelessDialog <SUPER Dialog </a></b></pre><p>Modless Dialog class <br /> ! To use this class you have to create a ressource file (*.res) which must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. Index: Childwnd.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Childwnd.htm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Childwnd.htm 29 Aug 2006 10:31:48 -0000 1.10 --- Childwnd.htm 26 May 2007 10:24:12 -0000 1.11 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: gdiWindowDc.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiWindowDc.htm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** gdiWindowDc.htm 29 Aug 2006 10:31:48 -0000 1.11 --- gdiWindowDc.htm 26 May 2007 10:24:13 -0000 1.12 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: TrayWindow.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/TrayWindow.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TrayWindow.htm 29 Aug 2006 10:31:48 -0000 1.9 --- TrayWindow.htm 26 May 2007 10:24:12 -0000 1.10 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> *************** *** 24,28 **** </a></b></pre><p>TrayWindow class </p><pre><b><a name="1">:M DefaultIcon: ( -- hIcon ) ! </a></b></pre><p>Get the handle of the icon whitch should be added to the traybar. </p><pre><b><a name="2">:M GetTooltip: ( -- addr len ) </a></b></pre><p>Get the tooltip text for the traybar icon. --- 26,30 ---- </a></b></pre><p>TrayWindow class </p><pre><b><a name="1">:M DefaultIcon: ( -- hIcon ) ! </a></b></pre><p>Get the handle of the icon which should be added to the traybar. </p><pre><b><a name="2">:M GetTooltip: ( -- addr len ) </a></b></pre><p>Get the tooltip text for the traybar icon. Index: gdiBrush.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiBrush.htm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** gdiBrush.htm 29 Aug 2006 10:31:48 -0000 1.11 --- gdiBrush.htm 26 May 2007 10:24:13 -0000 1.12 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: HTMLcontrol.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/HTMLcontrol.htm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** HTMLcontrol.htm 29 Aug 2006 10:31:48 -0000 1.10 --- HTMLcontrol.htm 26 May 2007 10:24:12 -0000 1.11 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: mdi.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/mdi.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** mdi.htm 29 Aug 2006 10:31:48 -0000 1.9 --- mdi.htm 26 May 2007 10:24:13 -0000 1.10 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: MdiDialog.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/MdiDialog.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MdiDialog.htm 29 Aug 2006 10:31:48 -0000 1.9 --- MdiDialog.htm 26 May 2007 10:24:12 -0000 1.10 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: Window.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Window.htm,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Window.htm 29 Aug 2006 10:31:48 -0000 1.17 --- Window.htm 26 May 2007 10:24:12 -0000 1.18 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: ADO.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/ADO.htm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ADO.htm 29 Aug 2006 10:31:48 -0000 1.2 --- ADO.htm 26 May 2007 10:24:12 -0000 1.3 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: gdiFont.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiFont.htm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** gdiFont.htm 29 Aug 2006 10:31:48 -0000 1.11 --- gdiFont.htm 26 May 2007 10:24:13 -0000 1.12 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: File.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/File.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** File.htm 29 Aug 2006 10:31:48 -0000 1.9 --- File.htm 26 May 2007 10:24:12 -0000 1.10 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: gdiBase.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiBase.htm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** gdiBase.htm 29 Aug 2006 10:31:48 -0000 1.13 --- gdiBase.htm 26 May 2007 10:24:12 -0000 1.14 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: gdiPen.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiPen.htm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** gdiPen.htm 29 Aug 2006 10:31:48 -0000 1.13 --- gdiPen.htm 26 May 2007 10:24:13 -0000 1.14 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: Controls.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Controls.htm,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Controls.htm 29 Aug 2006 10:31:48 -0000 1.16 --- Controls.htm 26 May 2007 10:24:12 -0000 1.17 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> *************** *** 1249,1392 **** </p><pre><b><a name="16">;Class </a></b></pre><p>End of SizeBox class </p><a name="MonthCalendar"></a> <h2>MonthCalendar class ! </h2><pre><b><a name="0">:Class MonthCalendar <Super Control </a></b></pre><p>Month Calendar control. A month calendar control implements a calendar-like user interface. This provides the user with a very intuitive and recognizable method of entering or selecting a date. ! </p><pre><b><a name="1">:M ClassInit: ( -- ) ! </a></b></pre><p>Initialise the class. ! </p><pre><b><a name="2">:M AddStyle: ( n -- ) ! </a></b></pre><p>Set any additional style of the control. Must be done before the control ! is created. ! </p><pre><b><a name="3">:M Start: ( Parent -- ) </a></b></pre><p>Create the control. ! </p><pre><b><a name="4">:M MinSize: ( -- x y ) </a></b></pre><p>Return minimum size required to display a month. ! </p><pre><b><a name="5">:M WindowStyle: ( -- style ) ! </a></b></pre><p>Get the window style of the control. Default style is: WS_BORDER. ! </p><pre><b><a name="6">:M GetDate: ( -- day month year ) </a></b></pre><p>Retrieves the currently selected date. </p><p><i> day </i> is the day of the month (0-31). </p><p><i> Month </i> is the month (January = 1; December = 12) </p><p><i> year </i> is the year (1601 - 30827). ! </p><pre><b><a name="7">:M GetToday: ( -- day month year ) </a></b></pre><p>Retrieves the date information for the date specified as "today". </p><p><i> day </i> is the day of the month (0-31). </p><p><i> Month </i> is the month (January = 1; December = 12) </p><p><i> year </i> is the year (1601 - 30827). ! </p><pre><b><a name="8">;Class </a></b></pre><p>End of MonthCalendar class </p><a name="DateTimePicker"></a> <h2>DateTimePicker class ! </h2><pre><b><a name="9">:Class DateTimePicker <Super Control </a></b></pre><p>Date and Time Picker control ! </p><pre><b><a name="10">:M ClassInit: ( -- ) ! </a></b></pre><p>Initialise the class. ! </p><pre><b><a name="11">:M AddStyle: ( n -- ) ! </a></b></pre><p>Set any additional style of the control. Must be done before the control ! is created. ! </p><pre><b><a name="12">:M Start: ( Parent -- ) </a></b></pre><p>Create the control. ! </p><pre><b><a name="13">:M WindowStyle: ( -- style ) ! </a></b></pre><p>Get the window style of the control. Default style is: WS_BORDER. ! </p><p>Date and Time Picker Control Styles ! The window styles listed here are specific to date and time picker controls. ! Constants ! DTS_APPCANPARSE ! Allows the owner to parse user input and take necessary action. It enables users to edit ! within the client area of the control when they press the F2 key. The control sends ! DTN_USERSTRING notification messages when users are finished. ! DTS_LONGDATEFORMAT Displays the date in long format. The default format string for this style is ! defined by LOCALE_SLONGDATEFORMAT, which produces output like "Friday, April 19, 1996". ! DTS_RIGHTALIGN The drop-down month calendar will be right-aligned with the control instead of ! left-aligned, which is the default. ! DTS_SHOWNONE It is possible to have no date currently selected in the control. With this style, ! the control displays a check box that users can check once they have entered or selected ! a date. Until this check box is checked, the application will not be able to retrieve ! the date from the control because, in essence, the control has no date. This state can ! be set with the DTM_SETSYSTEMTIME message or queried with the DTM_GETSYSTEMTIME message. ! DTS_SHORTDATEFORMAT ! Displays the date in short format. The default format string for this style is defined ! by LOCALE_SSHORTDATE, which produces output like "4/19/96". ! DTS_SHORTDATECENTURYFORMAT Version 5.80. Similar to the DTS_SHORTDATEFORMAT style, except the year is a ! four-digit field. The default format string for this style is based on LOCALE_SSHORTDATE. ! The output looks like: "4/19/1996". ! DTS_TIMEFORMAT Displays the time. The default format string for this style is defined by ! LOCALE_STIMEFORMAT, which produces output like "5:31:42 PM". ! DTS_UPDOWN ! Places an up-down control to the right of the DTP control to modify date-time values. ! This style can be used in place of the drop-down month calendar, which is the default ! style. ! Remarks ! The DTS_XXXFORMAT styles that define the display format cannot be combined. If none of ! the format styles are suitable, use a DTM_SETFORMAT message to define a custom format. ! </p><pre><b><a name="14">:M SetCustomFormat: ( z"format" -- ) </a></b></pre><p>set the display format for time or date </p><p>Format Strings ! A DTP format string consists of a series of elements that represent a particular piece of ! information and define its display format. The elements will be displayed in the order ! they appear in the format string. Date and time format elements will be replaced by the actual date and time. They are ! defined by the following groups of characters: ! Element Description ! "d" The one- or two-digit day. ! "dd" The two-digit day. Single-digit day values are preceded by a zero. ! "ddd" The three-character weekday abbreviation. ! "dddd" The full weekday name. ! "h" The one- or two-digit hour in 12-hour format. ! "hh" The two-digit hour in 12-hour format. Single-digit values are preceded by a zero. ! "H" The one- or two-digit hour in 24-hour format. ! "HH" The two-digit hour in 24-hour format. Single-digit values are preceded by a zero. ! "m" The one- or two-digit minute. ! "mm" The two-digit minute. Single-digit values are preceded by a zero. ! "M" The one- or two-digit month number. ! "MM" The two-digit month number. Single-digit values are preceded by a zero. ! "MMM" The three-character month abbreviation. ! "MMMM" The full month name. ! "t" The one-letter AM/PM abbreviation (that is, AM is displayed as "A"). ! "tt" The two-letter AM/PM abbreviation (that is, AM is displayed as "AM"). ! "yy" The last two digits of the year (that is, 1996 would be displayed as "96"). ! "yyyy" The full year (that is, 1996 would be displayed as "1996"). ! To make the information more readable, you can add body text to the format string by ! enclosing it in single quotes. Spaces and punctuation marks do not need to be quoted. ! Note Nonformat characters that are not delimited by single quotes will result in ! unpredictable display by the DTP control. For example, to display the current date with the format "'Today is: 04:22:31 Tuesday Mar 23, 1996", the format string is ! "'Today is: 'hh':'m':'s dddd MMM dd', 'yyyy". To include a single quote in your body text, ! use two consecutive single quotes. For example, "'Don''t forget' MMM dd',' yyyy" produces ! output that looks like: Don't forget Mar 23, 1996. It is not necessary to use quotes ! with the comma, so "'Don''t forget' MMM dd, yyyy" is also valid, and produces the same ! output. ! </p><pre><b><a name="15">:M GetTime: ( -- hrs min secs ) </a></b></pre><p>get user selected time ! </p><pre><b><a name="16">:M SetTime: ( hr min sec -- ) </a></b></pre><p>set time for user to edit ! </p><pre><b><a name="17">:M GetDate: ( -- day month year ) </a></b></pre><p>get user selected date ! </p><pre><b><a name="18">;Class </a></b></pre><p>End of DateTimePicker class </p><a name="TabControl"></a> --- 1251,1438 ---- </p><pre><b><a name="16">;Class </a></b></pre><p>End of SizeBox class + </p><pre><b><a name="0">|class DateTimeControl <Super Control + </a></b></pre><p>Generic class for methods common to MonthCalendar and DateTimePicker controls. + </p><pre><b><a name="1">:M ClassInit: ( -- ) + </a></b></pre><p>Initialise the class. + </p><pre><b><a name="2">:M AddStyle: ( n -- ) + </a></b></pre><p>Set any additional style of the control. Must be done before the control + is created. + </p><pre><b><a name="3">:M WindowStyle: ( -- style ) + </a></b></pre><p>Get the window style of the control. Default style is: WS_BORDER. + </p><p>The MonthCalendar and TimeDatePicker controls both use the _SystemTime structure + defined in the file ANSFILE.F , the members of which are; + </p><h3><i>wYear + </i></h3><p>The year (1601 - 30827). + + wMonth + The month. + + January = 1 + February = 2 + March = 3 + April = 4 + May = 5 + June = 6 + July = 7 + August = 8 + September = 9 + October = 10 + November = 11 + December = 12 + + wDayOfWeek + The day of the week. + + Sunday = 0 + Monday = 1 + Tuesday = 2 + Wednesday = 3 + Thursday = 4 + Friday = 5 + Saturday = 6 + + wDay + The day of the month (0-31). + wHour + The hour (0-23). + wMinute + The minute(s) (0-59). + wSecond + The second(s) (0-59). + wMilliseconds + The millisecond(s) (0-999). </p><a name="MonthCalendar"></a> <h2>MonthCalendar class ! </h2><pre><b><a name="4">:Class MonthCalendar <Super DateTimeControl </a></b></pre><p>Month Calendar control. A month calendar control implements a calendar-like user interface. This provides the user with a very intuitive and recognizable method of entering or selecting a date. ! </p><pre><b><a name="5">:M Start: ( Parent -- ) </a></b></pre><p>Create the control. ! </p><pre><b><a name="6">:M MinSize: ( -- x y ) </a></b></pre><p>Return minimum size required to display a month. ! </p><pre><b><a name="7">:M GetDate: ( -- day month year ) </a></b></pre><p>Retrieves the currently selected date. </p><p><i> day </i> is the day of the month (0-31). </p><p><i> Month </i> is the month (January = 1; December = 12) </p><p><i> year </i> is the year (1601 - 30827). ! </p><pre><b><a name="8">:M GetToday: ( -- day month year ) </a></b></pre><p>Retrieves the date information for the date specified as "today". </p><p><i> day </i> is the day of the month (0-31). </p><p><i> Month </i> is the month (January = 1; December = 12) </p><p><i> year </i> is the year (1601 - 30827). ! </p><pre><b><a name="9">;Class </a></b></pre><p>End of MonthCalendar class </p><a name="DateTimePicker"></a> <h2>DateTimePicker class ! </h2><pre><b><a name="10">:Class DateTimePicker <Super DateTimeControl </a></b></pre><p>Date and Time Picker control ! </p><pre><b><a name="11">:M Start: ( Parent -- ) </a></b></pre><p>Create the control. ! </p><p>Date and Time Picker Control Styles <br /> ! The window styles listed here are specific to date and time picker controls. <br /> ! Constants <br /> ! DTS_APPCANPARSE <br /> ! Allows the owner to parse user input and take necessary action. It enables users ! to edit within the client area of the control when they press the F2 key. ! The control sends DTN_USERSTRING notification messages when users are finished. <br /> ! DTS_LONGDATEFORMAT <br /> Displays the date in long format. The default format string for this style is ! defined by LOCALE_SLONGDATEFORMAT, which produces output like "Friday, April ! 19, 1996". <br /> ! DTS_RIGHTALIGN <br /> The drop-down month calendar will be right-aligned with the control instead of ! left-aligned, which is the default. <br /> ! DTS_SHOWNONE <br /> It is possible to have no date currently selected in the control. With this style, ! the control displays a check box that users can check once they have entered or ! selected a date. Until this check box is checked, the application will not be ! able to retrieve the date from the control because, in essence, the control has ! no date. This state can be set with the DTM_SETSYSTEMTIME message or queried ! with the DTM_GETSYSTEMTIME message. <br /> ! DTS_SHORTDATEFORMAT <br /> ! Displays the date in short format. The default format string for this style is ! defined by LOCALE_SSHORTDATE, which produces output like "4/19/96". <br /> ! DTS_SHORTDATECENTURYFORMAT <br /> Version 5.80. Similar to the DTS_SHORTDATEFORMAT style, except the year is a ! four-digit field. The default format string for this style is based on ! LOCALE_SSHORTDATE. The output looks like: "4/19/1996". <br /> ! DTS_TIMEFORMAT <br /> Displays the time. The default format string for this style is defined by ! LOCALE_STIMEFORMAT, which produces output like "5:31:42 PM". <br /> ! DTS_UPDOWN <br /> ! Places an up-down control to the right of the DTP control to modify date-time ! values. This style can be used in place of the drop-down month calendar, which ! is the default style. <br /> ! Remarks <br /> ! The DTS_XXXFORMAT styles that define the display format cannot be combined. ! If none of the format styles are suitable, use a DTM_SETFORMAT message to ! define a custom format. ! </p><pre><b><a name="12">:M SetCustomFormat: ( z"format" -- ) </a></b></pre><p>set the display format for time or date </p><p>Format Strings ! A DTP format string consists of a series of elements that represent a particular ! piece of information and define its display format. The elements will be displayed ! in the order they appear in the format string. <br /> Date and time format elements will be replaced by the actual date and time. They are ! defined by the following groups of characters: <br /> ! Element Description <br /> ! "d" The one- or two-digit day. <br /> ! "dd" The two-digit day. Single-digit day values are preceded by a zero. <br /> ! "ddd" The three-character weekday abbreviation. <br /> ! "dddd" The full weekday name. <br /> ! "h" The one- or two-digit hour in 12-hour format. <br /> ! "hh" The two-digit hour in 12-hour format. Single-digit values are preceded by ! a zero. <br /> ! "H" The one- or two-digit hour in 24-hour format. <br /> ! "HH" The two-digit hour in 24-hour format. Single-digit values are preceded by ! a zero. <br /> ! "m" The one- or two-digit minute. <br /> ! "mm" The two-digit minute. Single-digit values are preceded by a zero. <br /> ! "M" The one- or two-digit month number. <br /> ! "MM" The two-digit month number. Single-digit values are preceded by a zero. <br /> ! "MMM" The three-character month abbreviation. <br /> ! "MMMM" The full month name. <br /> ! "t" The one-letter AM/PM abbreviation (that is, AM is displayed as "A"). <br /> ! "tt" The two-letter AM/PM abbreviation (that is, AM is displayed as "AM"). <br /> ! "yy" The last two digits of the year (that is, 1996 would be displayed as "96"). <br /> ! "yyyy" The full year (that is, 1996 would be displayed as "1996"). <br /> ! To make the information more readable, you can add body text to the format string ! by enclosing it in single quotes. Spaces and punctuation marks do not need to be ! quoted. <br /> ! <b> Note </b> Nonformat characters that are not delimited by single quotes will ! result in unpredictable display by the DTP control. <br /> For example, to display the current date with the format "'Today is: 04:22:31 Tuesday Mar 23, 1996", the format string is ! "'Today is: 'hh':'m':'s dddd MMM dd', 'yyyy". To include a single quote in your ! body text, use two consecutive single quotes. For example, ! "'Don''t forget' MMM dd',' yyyy" produces output that looks like: <br /> ! Don't forget Mar 23, 1996. <br /> ! It is not necessary to use quotes with the comma, so ! "'Don''t forget' MMM dd, yyyy" is also valid, and produces the same output. ! </p><pre><b><a name="13">:M GetTime: ( -- hrs min secs ) </a></b></pre><p>get user selected time ! </p><pre><b><a name="14">:M SetTime: ( hr min sec -- ) </a></b></pre><p>set time for user to edit ! </p><pre><b><a name="15">:M GetDate: ( -- day month year ) </a></b></pre><p>get user selected date ! </p><pre><b><a name="16">;Class </a></b></pre><p>End of DateTimePicker class </p><a name="TabControl"></a> Index: gdiStruct.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiStruct.htm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** gdiStruct.htm 29 Aug 2006 10:31:48 -0000 1.12 --- gdiStruct.htm 26 May 2007 10:24:13 -0000 1.13 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: gdiDC.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiDC.htm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** gdiDC.htm 29 Aug 2006 10:31:48 -0000 1.11 --- gdiDC.htm 26 May 2007 10:24:13 -0000 1.12 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: Generic.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Generic.htm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Generic.htm 29 Aug 2006 10:31:48 -0000 1.15 --- Generic.htm 26 May 2007 10:24:12 -0000 1.16 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> *************** *** 42,78 **** the same for temporary compatibility. </p><h2>Glossary ! </h2><pre><b><a name="0">:CLASS Generic-Window <Super Object </a></b></pre><p>Base class for all window objects. </p><h3>Instance Variables ! </h3><pre><b><a name="1">int hWnd </a></b></pre><p>handle to Win32 window object ! </p><pre><b><a name="2">: SendMessage:Self ( lParam wParam message -- result ) </a></b></pre><p>Send a windows message to our self. ! </p><pre><b><a name="3">: SendMessage:SelfDrop ( lParam wParam message -- ) </a></b></pre><p>Send a windows message to our self and discard the result. </p><h3>Methods ! </h3><pre><b><a name="4">:M Classinit: ( -- ) </a></b></pre><p>Initialise the class. ! </p><pre><b><a name="5">:M GetHandle: ( -- hWnd ) </a></b></pre><p>Get the window handle. ! </p><pre><b><a name="6">:M PutHandle: ( hWnd -- ) </a></b></pre><p>Set the window handle. Normally handled by the system. ! </p><pre><b><a name="7">:M ZeroWindow: ( -- ) </a></b></pre><p>Clear the window handle. Normally handled by the system. At start-up all window objects are zeroed automatically. ! </p><pre><b><a name="8">:M DestroyWindow: ( -- ) </a></b></pre><p>Destroy the window. The handle is always zero after executing this method. In a mult-tasking application this method causes an error if executed by a task that didn't create the window. ! </p><pre><b><a name="9">:M Close: ( -- ) </a></b></pre><p>Close the window. ! </p><pre><b><a name="10">:M Paint: ( -- ) </a></b></pre><p>Force window repaint. A WM_PAINT message is posted to the message queue. ! </p><pre><b><a name="11">:M SetRedraw: ( f -- ) </a></b></pre><p>Set the redraw state of the window. </p><p><i> f </i> Specifies the redraw state. If this parameter is TRUE, the content can be redrawn after a change. If this parameter is FALSE, the content cannot be redrawn after a change. ! </p><pre><b><a name="12">:M Show: ( state -- ) </a></b></pre><p>The ShowWindow function sets the specified window's show state. <br /> Possible values for state are: --- 44,82 ---- the same for temporary compatibility. </p><h2>Glossary ! </h2><pre><b><a name="0">: get-mouse-xy ( hWnd -- x y) \ W32F ! </a></b></pre><p>Return the co-ordinates of the mouse pointer in window, hWnd. ! </p><pre><b><a name="1">:CLASS Generic-Window <Super Object </a></b></pre><p>Base class for all window objects. </p><h3>Instance Variables ! </h3><pre><b><a name="2">int hWnd </a></b></pre><p>handle to Win32 window object ! </p><pre><b><a name="3">: SendMessage:Self ( lParam wParam message -- result ) </a></b></pre><p>Send a windows message to our self. ! </p><pre><b><a name="4">: SendMessage:SelfDrop ( lParam wParam message -- ) </a></b></pre><p>Send a windows message to our self and discard the result. </p><h3>Methods ! </h3><pre><b><a name="5">:M Classinit: ( -- ) </a></b></pre><p>Initialise the class. ! </p><pre><b><a name="6">:M GetHandle: ( -- hWnd ) </a></b></pre><p>Get the window handle. ! </p><pre><b><a name="7">:M PutHandle: ( hWnd -- ) </a></b></pre><p>Set the window handle. Normally handled by the system. ! </p><pre><b><a name="8">:M ZeroWindow: ( -- ) </a></b></pre><p>Clear the window handle. Normally handled by the system. At start-up all window objects are zeroed automatically. ! </p><pre><b><a name="9">:M DestroyWindow: ( -- ) </a></b></pre><p>Destroy the window. The handle is always zero after executing this method. In a mult-tasking application this method causes an error if executed by a task that didn't create the window. ! </p><pre><b><a name="10">:M Close: ( -- ) </a></b></pre><p>Close the window. ! </p><pre><b><a name="11">:M Paint: ( -- ) </a></b></pre><p>Force window repaint. A WM_PAINT message is posted to the message queue. ! </p><pre><b><a name="12">:M SetRedraw: ( f -- ) </a></b></pre><p>Set the redraw state of the window. </p><p><i> f </i> Specifies the redraw state. If this parameter is TRUE, the content can be redrawn after a change. If this parameter is FALSE, the content cannot be redrawn after a change. ! </p><pre><b><a name="13">:M Show: ( state -- ) </a></b></pre><p>The ShowWindow function sets the specified window's show state. <br /> Possible values for state are: *************** *** 145,176 **** the message queue to prevent the current task hanging. If the window belongs to the current task the message is sent. ! </p><pre><b><a name="13">:M GDIFlush: ( -- ) </a></b></pre><p>The GdiFlush function flushes the calling thread's current batch. ! </p><pre><b><a name="14">:M Update: ( -- ) </a></b></pre><p>The UpdateWindow function updates the client area of the window by sending a WM_PAINT message to the window if the window's update region is not empty. The function sends a WM_PAINT message directly to the window procedure of the window, bypassing the application queue. If the update region is empty, no message is sent. ! </p><pre><b><a name="15">:M Scroll: { x y -- } </a></b></pre><p>The ScrollWindow function scrolls the contents of the specified window's client area. ! </p><pre><b><a name="16">:M Move: { x y w h -- } </a></b></pre><p>The MoveWindow function changes the position and dimensions of window. For a top-level window, the position and dimensions are relative to the upper-left corner of the screen. For a child window, they are relative to the upper-left corner of the parent window's client area. ! </p><pre><b><a name="17">:M SetWindowPos: { x y -- } </a></b></pre><p>The SetWindowPos function changes the position of a child, pop-up, or top-level window. <br /> X Specifies the new position of the left side of the window, in client coordinates. <br /> Y Specifies the new position of the top of the window, in client coordinates. ! </p><pre><b><a name="18">:M SetMenu: ( MenuHandle -- ) </a></b></pre><p>The SetMenu function assigns a new menu to the window. If MenuHandle is NULL, the window's current menu is removed. ! </p><pre><b><a name="19">:M SetText: { addr len \ text$ -- } </a></b></pre><p>The SetWindowText function changes the text of the window's title bar (if it has one). If the window is a control, the text of the control is changed. ! </p><pre><b><a name="20">:M GetText: ( -- addr len ) </a></b></pre><p>The GetWindowText function copies the text of the window's title bar (if it has one) into a buffer. If the window is a control, the text of the control is copied. ! </p><pre><b><a name="21">:M SetTextAlign: ( flag -- ) </a></b></pre><p>Set the text-alignment for the window. <br /> The current position is updated after each text output call. --- 149,180 ---- the message queue to prevent the current task hanging. If the window belongs to the current task the message is sent. ! </p><pre><b><a name="14">:M GDIFlush: ( -- ) </a></b></pre><p>The GdiFlush function flushes the calling thread's current batch. ! </p><pre><b><a name="15">:M Update: ( -- ) </a></b></pre><p>The UpdateWindow function updates the client area of the window by sending a WM_PAINT message to the window if the window's update region is not empty. The function sends a WM_PAINT message directly to the window procedure of the window, bypassing the application queue. If the update region is empty, no message is sent. ! </p><pre><b><a name="16">:M Scroll: { x y -- } </a></b></pre><p>The ScrollWindow function scrolls the contents of the specified window's client area. ! </p><pre><b><a name="17">:M Move: { x y w h -- } </a></b></pre><p>The MoveWindow function changes the position and dimensions of window. For a top-level window, the position and dimensions are relative to the upper-left corner of the screen. For a child window, they are relative to the upper-left corner of the parent window's client area. ! </p><pre><b><a name="18">:M SetWindowPos: { x y -- } </a></b></pre><p>The SetWindowPos function changes the position of a child, pop-up, or top-level window. <br /> X Specifies the new position of the left side of the window, in client coordinates. <br /> Y Specifies the new position of the top of the window, in client coordinates. ! </p><pre><b><a name="19">:M SetMenu: ( MenuHandle -- ) </a></b></pre><p>The SetMenu function assigns a new menu to the window. If MenuHandle is NULL, the window's current menu is removed. ! </p><pre><b><a name="20">:M SetText: { addr len \ text$ -- } </a></b></pre><p>The SetWindowText function changes the text of the window's title bar (if it has one). If the window is a control, the text of the control is changed. ! </p><pre><b><a name="21">:M GetText: ( -- addr len ) </a></b></pre><p>The GetWindowText function copies the text of the window's title bar (if it has one) into a buffer. If the window is a control, the text of the control is copied. ! </p><pre><b><a name="22">:M SetTextAlign: ( flag -- ) </a></b></pre><p>Set the text-alignment for the window. <br /> The current position is updated after each text output call. *************** *** 192,200 **** </td> </tr> ! </table><pre><b><a name="22">:M GetDC: ( -- hdc ) </a></b></pre><p>The GetDC function retrieves a handle to a display device context (DC) for the client area of the window. <br /> You have to call ReleaseDC when the DC isn't needed any longer. ! </p><pre><b><a name="23">:M GetWindowDC: ( -- hdc ) </a></b></pre><p>The GetWindowDC function retrieves the device context (DC) for the entire window, including title bar, menus, and scroll bars. A window device context --- 196,204 ---- </td> </tr> ! </table><pre><b><a name="23">:M GetDC: ( -- hdc ) </a></b></pre><p>The GetDC function retrieves a handle to a display device context (DC) for the client area of the window. <br /> You have to call ReleaseDC when the DC isn't needed any longer. ! </p><pre><b><a name="24">:M GetWindowDC: ( -- hdc ) </a></b></pre><p>The GetWindowDC function retrieves the device context (DC) for the entire window, including title bar, menus, and scroll bars. A window device context *************** *** 204,222 **** retrieves the device context. Previous attributes are lost. <br /> You have to call ReleaseDC when the DC isn't needed any longer. ! </p><pre><b><a name="24">:M ReleaseDC: ( hdc -- ) </a></b></pre><p>The ReleaseDC function releases the device context (DC) of the window. <br /> Call only after GetDC or GetWindowDC. ! </p><pre><b><a name="25">:M BeginPaint: ( ps -- hdc ) </a></b></pre><p>The BeginPaint function prepares the window for painting and fills a PAINTSTRUCT (ps) structure with information about the painting. ! </p><pre><b><a name="26">:M EndPaint: ( ps -- ) </a></b></pre><p>The EndPaint function marks the end of painting in the window. This function is required for each call to the BeginPaint function, but only after painting is complete. ! </p><pre><b><a name="27">:M GetClientRect: ( rect -- ) </a></b></pre><p>The GetClientRect function retrieves the coordinates of the window's client area. The client coordinates specify the upper-left and lower-right corners of the client area. Because client coordinates are relative to the upper-left corner of a window's client area, the coordinates of the upper-left corner are (0,0). ! </p><pre><b><a name="28">:M GetWindowLong: ( index -- value ) </a></b></pre><p>The GetWindowLong function retrieves information about the window. The function also retrieves the 32-bit (long) value at the specified offset into the extra --- 208,226 ---- retrieves the device context. Previous attributes are lost. <br /> You have to call ReleaseDC when the DC isn't needed any longer. ! </p><pre><b><a name="25">:M ReleaseDC: ( hdc -- ) </a></b></pre><p>The ReleaseDC function releases the device context (DC) of the window. <br /> Call only after GetDC or GetWindowDC. ! </p><pre><b><a name="26">:M BeginPaint: ( ps -- hdc ) </a></b></pre><p>The BeginPaint function prepares the window for painting and fills a PAINTSTRUCT (ps) structure with information about the painting. ! </p><pre><b><a name="27">:M EndPaint: ( ps -- ) </a></b></pre><p>The EndPaint function marks the end of painting in the window. This function is required for each call to the BeginPaint function, but only after painting is complete. ! </p><pre><b><a name="28">:M GetClientRect: ( rect -- ) </a></b></pre><p>The GetClientRect function retrieves the coordinates of the window's client area. The client coordinates specify the upper-left and lower-right corners of the client area. Because client coordinates are relative to the upper-left corner of a window's client area, the coordinates of the upper-left corner are (0,0). ! </p><pre><b><a name="29">:M GetWindowLong: ( index -- value ) </a></b></pre><p>The GetWindowLong function retrieves information about the window. The function also retrieves the 32-bit (long) value at the specified offset into the extra *************** *** 262,266 **** </td> </tr> ! </table><pre><b><a name="29">:M SetWindowLong: ( value index -- oldval ) </a></b></pre><p>The SetWindowLong function changes an attribute of the window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory. --- 266,270 ---- </td> </tr> ! </table><pre><b><a name="30">:M SetWindowLong: ( value index -- oldval ) </a></b></pre><p>The SetWindowLong function changes an attribute of the window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory. *************** *** 295,310 **** </td> </tr> ! </table><pre><b><a name="30">:M GetStyle: ( -- style ) </a></b></pre><p>Retrieves the window styles. ! </p><pre><b><a name="31">:M SetStyle: ( style -- ) </a></b></pre><p>Sets a new window style. ! </p><pre><b><a name="32">:M +Style: ( style -- ) </a></b></pre><p>Add a window style. ! </p><pre><b><a name="33">:M -Style: ( style -- ) </a></b></pre><p>Remove a window style. ! </p><pre><b><a name="34">:M SetFocus: ( -- ) </a></b></pre><p>The SetFocus function sets the keyboard focus to the window. The window must be attached to the calling thread's message queue. ! </p><pre><b><a name="35">:M SetForegroundWindow: ( -- ) </a></b></pre><p>The SetForegroundWindow function puts the thread that created the specified window into the foreground and activates the window. Keyboard input is directed to the window, --- 299,314 ---- </td> </tr> ! </table><pre><b><a name="31">:M GetStyle: ( -- style ) </a></b></pre><p>Retrieves the window styles. ! </p><pre><b><a name="32">:M SetStyle: ( style -- ) </a></b></pre><p>Sets a new window style. ! </p><pre><b><a name="33">:M +Style: ( style -- ) </a></b></pre><p>Add a window style. ! </p><pre><b><a name="34">:M -Style: ( style -- ) </a></b></pre><p>Remove a window style. ! </p><pre><b><a name="35">:M SetFocus: ( -- ) </a></b></pre><p>The SetFocus function sets the keyboard focus to the window. The window must be attached to the calling thread's message queue. ! </p><pre><b><a name="36">:M SetForegroundWindow: ( -- ) </a></b></pre><p>The SetForegroundWindow function puts the thread that created the specified window into the foreground and activates the window. Keyboard input is directed to the window, *************** *** 313,317 **** The foreground window is the window at the top of the Z order. It is the window that the user is working with. In a preemptive multitasking environment, you should generally let the ! user control which window is the foreground window. }n Windows 98, Windows 2000: The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true: <br /> --- 317,321 ---- The foreground window is the window at the top of the Z order. It is the window that the user is working with. In a preemptive multitasking environment, you should generally let the ! user control which window is the foreground window. <br /> Windows 98, Windows 2000: The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true: <br /> *************** *** 333,337 **** process, or the next time a process calls AllowSetForegroundWindow, unless that process is specified. <br /> The foreground process can disable calls to SetForegroundWindow by calling the LockSetForegroundWindow function. ! </p><pre><b><a name="36">:M SetActiveWindow: ( -- ) </a></b></pre><p>The SetActiveWindow function activates a window. The window must be attached to the calling thread's message queue. <br /> The SetActiveWindow function activates a window, but not if the application is in the background. The window will be --- 337,341 ---- process, or the next time a process calls AllowSetForegroundWindow, unless that process is specified. <br /> The foreground process can disable calls to SetForegroundWindow by calling the LockSetForegroundWindow function. ! </p><pre><b><a name="37">:M SetActiveWindow: ( -- ) </a></b></pre><p>The SetActiveWindow function activates a window. The window must be attached to the calling thread's message queue. <br /> The SetActiveWindow function activates a window, but not if the application is in the background. The window will be *************** *** 341,363 **** By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetActiveWindow to activate a window attached to another thread's message queue. ! </p><pre><b><a name="37">:M MessageBox: ( szText szTitle style -- result ) </a></b></pre><p>The MessageBox function creates, displays, and operates a message box. The message box contains an application-defined message and title, plus any combination of predefined icons and push buttons. </p><table border="1"><tr><td>szText </td> ! <td>Pointer to a null-terminated string that contains the message to be displayed. \ </td> </tr> <tr><td>szTitle </td> ! <td>Pointer to a null-terminated string that contains the dialog box title. If this parameter is NULL, the default title Error is used. \ </td> </tr> <tr><td>Type </td> ! <td>Specifies the contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags </td> </tr> ! </table><p>To indicate the buttons displayed in the message box, specify one of the following values. </p><table border="1"><tr><td>MB_ABORTRETRYIGNORE </td> --- 345,367 ---- By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetActiveWindow to activate a window attached to another thread's message queue. ! </p><pre><b><a name="38">:M MessageBox: ( szText szTitle style -- result ) </a></b></pre><p>The MessageBox function creates, displays, and operates a message box. The message box contains an application-defined message and title, plus any combination of predefined icons and push buttons. </p><table border="1"><tr><td>szText </td> ! <td>Pointer to a null-terminated string that contains the message to be displayed. </td> </tr> <tr><td>szTitle </td> ! <td>Pointer to a null-terminated string that contains the dialog box title. If this parameter is NULL, the default title Error is used. </td> </tr> <tr><td>Type </td> ! <td>Specifies the contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags. </td> </tr> ! </table><p>To indicate the buttons displayed in the message box, specify one of the following values. | </p><table border="1"><tr><td>MB_ABORTRETRYIGNORE </td> *************** *** 504,508 **** </td> </tr> ! </table><pre><b><a name="38">:M InvalidateRect: ( bgflag rectangle -- ) </a></b></pre><p>The InvalidateRect function adds a rectangle to the window's update region. The update region represents the portion of the window's client area that must be redrawn. --- 508,512 ---- </td> </tr> ! </table><pre><b><a name="39">:M InvalidateRect: ( bgflag rectangle -- ) </a></b></pre><p>The InvalidateRect function adds a rectangle to the window's update region. The update region represents the portion of the window's client area that must be redrawn. *************** *** 517,535 **** </td> </tr> ! </table><pre><b><a name="39">:M GetDlgItem: ( id -- handle ) </a></b></pre><p>The Ge... [truncated message content] |
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv10832/doc Modified Files: FloadCmdLine.htm Paths.htm SQLite.htm WinSock.htm p-AcceleratorTables.htm p-W32fdexh.htm p-callback.htm p-classdbg.htm p-classes.htm p-dexh-createdocs.htm p-float.htm p-index.htm p-interpif.htm p-module.htm p-noconsole.htm p-relnotes.6.12.htm p-task.htm w32f-glossary.csv Log Message: - Doc's updated Index: p-W32fdexh.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-W32fdexh.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** p-W32fdexh.htm 30 Aug 2006 08:30:22 -0000 1.1 --- p-W32fdexh.htm 26 May 2007 10:24:11 -0000 1.2 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: p-classes.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classes.htm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** p-classes.htm 19 Aug 2006 14:45:36 -0000 1.13 --- p-classes.htm 26 May 2007 10:24:11 -0000 1.14 *************** *** 154,164 **** <li><a href="./classes/File.htm#File">File</a> Class for file I/O.</li> <li><a href="./classes/File.htm#ReadFile">ReadFile</a> Class for loading/saving a complete file from/to memory.</li> </ul> <h2>ADO Classes</h2> <ul> ! <li><a href="./classes/ADO.htm#0">ADOConnection</a> For connecting to a database.</li> ! <li><a href="./classes/ADO.htm#21">ADOCursor</a> For manipulating recordsets.</li> ! </ul> <hr> --- 154,165 ---- <li><a href="./classes/File.htm#File">File</a> Class for file I/O.</li> <li><a href="./classes/File.htm#ReadFile">ReadFile</a> Class for loading/saving a complete file from/to memory.</li> + <li><a href="SQLite.htm">SQLite</a> Database Class for SQLite</li> </ul> <h2>ADO Classes</h2> <ul> ! <li><a href="./classes/ADO.htm#0">ADOConnection</a> For connecting to a database.</li> ! <li><a href="./classes/ADO.htm#21">ADOCursor</a> For manipulating recordsets.</li> ! </ul> <hr> Index: p-relnotes.6.12.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-relnotes.6.12.htm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** p-relnotes.6.12.htm 17 May 2007 11:11:22 -0000 1.13 --- p-relnotes.6.12.htm 26 May 2007 10:24:11 -0000 1.14 *************** *** 217,220 **** --- 217,226 ---- <li><a href="./classes/TrayWindow.htm">TrayWindow</a> Class for windows that hide themself in the TrayBar when they are minimized.</li> + <li><a href="SQLite.htm">SQLite</a> Database Class for SQLite</li> + </ul> + + <h2>New Libraries</h2> + <ul> + <li><a href="WinSock.htm">WinSock</a> Simple Socket Library</li> </ul> *************** *** 230,233 **** --- 236,242 ---- to implement a Spliiter window</a></li> <li>demos\Ado\*.f - Various demos for the new Ado class library. Requires MS access to build the .mdb file for the tests. + <li><a href="../demos/SQLite Demo.f">demos/SQLite Demo.f - Shows how to use the SQLite class</a></li> + <li><a href="../demos/WinSock Demo.f">demos/SWinSock Demo.f - Shows how to use the WinSock library</a></li> + </ul> Index: p-module.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-module.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** p-module.htm 29 Aug 2006 10:31:47 -0000 1.9 --- p-module.htm 26 May 2007 10:24:11 -0000 1.10 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: SQLite.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/SQLite.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SQLite.htm 26 May 2007 10:06:10 -0000 1.1 --- SQLite.htm 26 May 2007 10:24:11 -0000 1.2 *************** *** 15,20 **** <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id$"> ! <img border="0" src="TELLUS.gif" align="left" width="32" height="32"></a> ! <img border="0" src="FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>SQLite -- Database Class for SQLite --- 15,20 ---- <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id$"> ! <img border="0" src="../TELLUS.gif" align="left" width="32" height="32"></a> ! <img border="0" src="../FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>SQLite -- Database Class for SQLite Index: p-classdbg.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classdbg.htm,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** p-classdbg.htm 29 Aug 2006 10:31:46 -0000 1.8 --- p-classdbg.htm 26 May 2007 10:24:11 -0000 1.9 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: p-noconsole.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-noconsole.htm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** p-noconsole.htm 29 Aug 2006 10:31:47 -0000 1.3 --- p-noconsole.htm 26 May 2007 10:24:11 -0000 1.4 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> *************** *** 28,33 **** the console window. </p><pre><b><a name="2">: ResetConsoleIO ( -- ) \ W32F console ! </a></b></pre><p>Reset of the Console I/O after saving turnkey applications that don't need ! the console window. Done automatically by TURNKEY. </p><pre><b><a name="3">: NoConsoleInImage ( -- ) \ W32F console </a></b></pre><p>Tell Imageman that we don't need the w32fconsole.dll if possible. --- 30,35 ---- the console window. </p><pre><b><a name="2">: ResetConsoleIO ( -- ) \ W32F console ! </a></b></pre><p>Reset of the Console I/O after saving an application that don't need ! the console window. Done automatically by TURNKEY and APPLICATION. </p><pre><b><a name="3">: NoConsoleInImage ( -- ) \ W32F console </a></b></pre><p>Tell Imageman that we don't need the w32fconsole.dll if possible. Index: w32f-glossary.csv =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/w32f-glossary.csv,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** w32f-glossary.csv 19 Aug 2006 14:45:36 -0000 1.12 --- w32f-glossary.csv 26 May 2007 10:24:11 -0000 1.13 *************** *** 1,57 **** "Name","Stack","Comment","Type","Class","File" ! "Generic-Window","","","CLASS","","Generic.htm#0" ! "hWnd","","","INT ivar","Generic-Window","Generic.htm#1" ! "Classinit:","--","","METHOD","Generic-Window","Generic.htm#2" ! "GetHandle:","-- hWnd","","METHOD","Generic-Window","Generic.htm#3" ! "PutHandle:","hWnd --","","METHOD","Generic-Window","Generic.htm#4" ! "ZeroWindow:","--","","METHOD","Generic-Window","Generic.htm#5" ! "DestroyWindow:","--","","METHOD","Generic-Window","Generic.htm#6" ! "Close:","--","","METHOD","Generic-Window","Generic.htm#7" ! "Paint:","--","","METHOD","Generic-Window","Generic.htm#8" [...1169 lines suppressed...] + "create-doc","addr len --","","COLON","ADOCursor","p-W32fdexh.htm#5" + "DEXF","--","","COLON","ADOCursor","p-W32fdexh.htm#6" + "create-docs","--","W32F tool","COLON","ADOCursor","p-dexh-createdocs.htm#0" + "wsocket2-init","--","","COLON","ADOCursor","WinSock.htm#4" + "wsocket2-cleanup","--","","COLON","ADOCursor","WinSock.htm#5" + "host>iaddr","str len -- iaddr","","COLON","ADOCursor","WinSock.htm#6" + "iaddr>str","iaddr -- str len","","COLON","ADOCursor","WinSock.htm#7" + "sock-open","addr len port -- sock","","COLON","ADOCursor","WinSock.htm#8" + "sock-read","addr len sock -- len","","COLON","ADOCursor","WinSock.htm#9" + "sock-write","addr len sock -- len","","COLON","ADOCursor","WinSock.htm#10" + "sock-close","sock -- ior","","COLON","ADOCursor","WinSock.htm#11" + "sock-create","p -- sock","","COLON","ADOCursor","WinSock.htm#12" + "sock-listen","n sock --","","COLON","ADOCursor","WinSock.htm#13" + "sock-accept","sock -- sock iaddr","","COLON","ADOCursor","WinSock.htm#14" + "sock-read?","sock -- n","","COLON","ADOCursor","WinSock.htm#15" + "sock-write?","sock -- flag","","COLON","ADOCursor","WinSock.htm#16" + "sock-accept?","sock -- flag","","COLON","ADOCursor","WinSock.htm#17" + "sock-closed?","sock -- flag","","COLON","ADOCursor","WinSock.htm#18" + "sock-err?","sock -- n","","COLON","ADOCursor","WinSock.htm#19" + "sock-blocked","flag sock --","","COLON","ADOCursor","WinSock.htm#20" Index: p-AcceleratorTables.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-AcceleratorTables.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** p-AcceleratorTables.htm 29 Aug 2006 10:31:46 -0000 1.9 --- p-AcceleratorTables.htm 26 May 2007 10:24:11 -0000 1.10 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Index: p-index.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-index.htm,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** p-index.htm 17 Oct 2006 08:52:18 -0000 1.19 --- p-index.htm 26 May 2007 10:24:11 -0000 1.20 *************** *** 159,162 **** --- 159,163 ---- <li><a href="p-ansfile.htm">File and directory searching words</a></li> <li><a href="Unicode.htm">Unicode Strings (for use with FCOM)</a></li> + <li><a href="WinSock.htm">WinSock - Simple Socket Library</li> <li><a href="p-relnotes.6.12.htm">Release Notes</a></li> </ul> Index: p-callback.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-callback.htm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** p-callback.htm 29 Aug 2006 10:31:46 -0000 1.4 --- p-callback.htm 26 May 2007 10:24:11 -0000 1.5 *************** *** 1,6 **** ! <html> <head> ! <meta http-equiv="Content-Language" content="en-gb"> ! <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> --- 1,8 ---- ! <?xml version="1.0"?> ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ! <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> *************** *** 118,122 **** </a></b></pre><p>This windows message definition for WM_WIN32FORTH, provides a way for multiple Win32Forth applications to interact between themselves ! wile running. </p><pre><b><a name="7">: WM_WIN32FOR-INIT ( -- ) \ w32f internal </a></b></pre><p>WM_WIN32FOR-INIT obtains a unique windows message value from Windows --- 120,124 ---- </a></b></pre><p>This windows message definition for WM_WIN32FORTH, provides a way for multiple Win32Forth applications to interact between themselves ! while running. </p><pre><b><a name="7">: WM_WIN32FOR-INIT ( -- ) \ w32f internal </a></b></pre><p>WM_WIN32FOR-INIT obtains a unique windows message value from Windows Index: FloadCmdLine.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/FloadCmdLine.htm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** FloadCmdLine.htm 29 Nov 2006 13:23:34 -0000 1.7 --- FloadCmdLine.htm 26 May 2007 10:24:11 -0000 1.8 *************** *** 4,15 **** <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-1" /> ! <meta name="GENERATOR" content="DexH v03" /> ! <style type="text/css"> ! </style> <title> ! </title> </head> ! <body> <hr /><h1>Experimental shell integration for Win32Forth </h1><hr /><br />FloadCmdLine allows compiling from the context menu. --- 4,21 ---- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ! <meta name="GENERATOR" content="dexh v03"> ! <meta name="ProgId" content="FrontPage.Editor.Document"> ! <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> ! </title><style><!-- ! h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } ! h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> ! </style> </head> ! <body><h1 align="center"> ! <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id$"> ! <img border="0" src="TELLUS.gif" align="left" width="32" height="32"></a> ! <img border="0" src="FORTHPRO.gif" ! width="32" height="32"> Win32Forth</h1> <hr /><h1>Experimental shell integration for Win32Forth </h1><hr /><br />FloadCmdLine allows compiling from the context menu. *************** *** 37,40 **** </p><pre><b><a name="0">: FloadCmdLine ( - ) </a></b></pre><p> Compiles the file in the command line. ! </p><hr /> </body></html> --- 43,46 ---- </p><pre><b><a name="0">: FloadCmdLine ( - ) </a></b></pre><p> Compiles the file in the command line. ! </p><hr><p>Document $Id$</p> </body></html> |
From: Dirk B. <db...@us...> - 2007-05-26 10:24:17
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv10832/src/tools Modified Files: DexH-CreateDocs.f Log Message: - Doc's updated Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** DexH-CreateDocs.f 30 Aug 2006 08:27:51 -0000 1.17 --- DexH-CreateDocs.f 26 May 2007 10:24:13 -0000 1.18 *************** *** 69,72 **** --- 69,73 ---- \ other classes s" src\lib\file.f" create-doc + s" src\lib\SQLite.F" create-doc \ \ ADO *************** *** 88,91 **** --- 89,93 ---- s" src\tools\W32fdexh.f" create-doc s" src\tools\DexH-CreateDocs.f" create-doc + s" src\lib\WinSock.f" create-doc ; |
From: Dirk B. <db...@us...> - 2007-05-26 10:06:26
|
Update of /cvsroot/win32forth/win32forth/demos In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3872/demos Added Files: SQLite Demo.f WinSock Demo.f Log Message: - Tom Dixon's WinSock and SQLite library's added --- NEW FILE: WinSock Demo.f --- \ Server Side needs sock.f create tbuf 256 allot : sdump ( sock -- ) begin dup sock-read? if dup tbuf 256 rot sock-read tbuf swap type then dup sock-closed? key? or until sock-close drop ; s" www.technobox.de" 80 sock-open value sock s" GET / HTTP/1.0" sock sock-write . crlf$ count sock sock-write . crlf$ count sock sock-write . cr sock sdump \s 0 value sock : server-init ( -- ) 8003 sock-create dup to sock dup -1 = if abort" Unable to make socket!" then 5 sock sock-listen ; : serve ( -- ) begin sock sock-accept? if sock sock-accept drop dup s" Server Hello! " rot sock-write drop dup get-local-time time-buf >time" rot sock-write drop 10 ms sock-close drop then 10 ms key? until ; : server ( -- ) server-init serve ; \ client side : client ( hostname -- ) 8003 sock-open to sock begin 10 ms sock sock-read? dup if pad swap sock sock-read pad swap type else drop then sock sock-closed? until sock sock-close drop ; .( Type 'server' or 's" hostname" client' to test the server or client) --- NEW FILE: SQLite Demo.f --- \ Benchmark for SQLite stuff \ Thomas Dixon anew -SQLiteDemo.f include SQLite.f SQLiteDB sqlite 10000 constant #records : create-table ( -- ) s" CREATE TABLE test (name varchar, id int, fl1 float, data blob )" execute: sqlite ; : delete-table ( -- ) s" DROP TABLE test" execute: sqlite ; : row-iter ( xt -- ) begin dup >r execute r> nextrow: sqlite until drop ; \ Generating a random word create tbuf 256 allot create tstr 256 allot : random-word ( -- str len ) 12 random 1 + dup tbuf c! 0 do 26 random 97 + tbuf i + 1 + c! loop tbuf count ; \ Generating a random string : random-str ( n -- str len ) 0 tstr c! 0 do random-word tstr +place s" " tstr +place loop tstr count ; \ Fill tables with junk... : ins-rows ( n -- ) 0 do s" INSERT INTO test(name, id, fl1, data) VALUES(?,?,?,?)" execute: sqlite 4 random 1+ random-str 0 bindstr: sqlite i 1 bindint: sqlite i s>f 3.14159265358979e0 f* 2 bindfloat: sqlite get-local-time time-buf 16 3 bindblob: sqlite loop ; \ misc operations : walk-table ( -- ) 0 ['] 1+ row-iter ." Ran through " . ." rows." ; : order-by-int ( -- ) s" select * from test order by id desc" execute: sqlite ; : order-by-float ( -- ) s" select * from test order by fl1 desc" execute: sqlite ; : order-by-string ( -- ) s" select * from test order by name desc" execute: sqlite ; : order-by-blob ( -- ) s" select * from test order by data desc" execute: sqlite ; : random-access ( n -- ) 0 do s" select * from test where id = ?" execute: sqlite #records random 0 bindint: sqlite loop ; \ for debug : qdump ( -- ) fieldcnt: sqlite 0 ?do i fieldname: sqlite type tab loop cr cr begin fieldcnt: sqlite 0 ?do i getstr: sqlite type tab loop cr nextrow: sqlite until ; : memory-db ( -- ) s" :memory:" open: sqlite ; : file-db ( -- ) s" c:\mytest.db" open: sqlite ; cr cr .( SQLITE Benchmark! ) cr cr .( Creating Database from RAM: ) elapse memory-db cr cr .( Creating Tables: ) elapse create-table cr cr #records . .( row insert: ) elapse #records ins-rows cr cr .( Ordering Data by Integer: ) elapse order-by-int cr cr .( Walk Through All Records: ) elapse walk-table cr cr .( Ordering Data by Float: ) elapse order-by-float cr cr .( Walk Through All Records: ) elapse walk-table cr cr .( Ordering Data by String: ) elapse order-by-string cr cr .( Walk Through All Records: ) elapse walk-table cr cr .( Ordering Data by Blob: ) elapse order-by-blob cr cr .( Walk Through All Records: ) elapse walk-table cr cr .( Random Access -100 records- :) elapse 100 random-access cr cr .( Deleting Tables: ) elapse delete-table |
From: Dirk B. <db...@us...> - 2007-05-26 10:06:15
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3872/src/lib Added Files: SQLite.F WinSock.f Log Message: - Tom Dixon's WinSock and SQLite library's added --- NEW FILE: SQLite.F --- \ SQLite -- Database Class for SQLite \ Thomas Dixon \ *D doc\ \ *! SQLite \ *T SQLite -- Database Class for SQLite \ *Q Tom Dixon \ ** This class provides an interface to SQLite databases. \ *S SQLite Behavior \ ** SQLite operates on database files. Files are opened as read-only, if \ ** no update occurs, and can be shared through several applications. \ ** Writes cause a block until the file can be opened as read/write. This \ ** makes the locking scheme very efficient and easy to work with.\n\n \ ** SQLite is very fast, flexible, and simple. One very nice feature is \ ** that SQLite will convert types as best as it can for you if you want \ ** a type different from the native database type.\n\n \ ** For more information about SQLite, please see \ *W <A href="http://www.sqlite.org/">www.sqlite.org</A> anew -SQLite.f INTERNAL EXTERNAL winlibrary sqlite3.dll \ Code to handle returned floats CODE retF FPU> float; CFA-CODE DOCALL64 ( [ n ] -- r ) \ like DOCALL, but with a double returned push ebx mov ebx, edx \ save UP call 4 [eax] \ call address is absolute!!! push edx mov edx, ebx \ restore UP mov ebx, eax next c; : make-proc64 ' docall64 swap ! ; \ convert standard calls to 64-bit return calls 0 proc sqlite3_column_int64 make-proc64 sqlite3_column_int64 \ DataTypes 1 constant SQLITE_INTEGER 2 constant SQLITE_FLOAT 3 constant SQLITE_TEXT 4 constant SQLITE_BLOB 5 constant SQLITE_NULL variable SQLITE_STATIC 0 SQLITE_STATIC ! variable SQLITE_TRANSIENT -1 SQLITE_TRANSIENT ! :class SQLiteDB <SUPER Object \ *G SQLiteDB is an interface to SQLite. CELL bytes dbhndl CELL bytes stmt CELL bytes tail int lasterr int sstate int #args 256 bytes tstr :M SQLOK: ( n -- ) \ checks return argument for errors dup 1 99 within if to lasterr else drop then ;M :M ERR: ( -- ) \ thows an error on any problem \ *G Displays any error that might have occured. lasterr if dbhndl @ call sqlite3_errmsg nip zcount tstr place 0 to lasterr tstr $DB nabort! then ;M :M Open: ( str len -- ) \ *G Opens a database file so we can execute operations on it.\n \ ** If the string is ":memory:" the database is actually created \ ** in memory instead of on disk, and should be faster. dup 1+ tstr + 0 swap c! tstr swap cmove dbhndl tstr call sqlite3_open SQLOK: self drop drop ERR: self ;M :M Close: ( -- flag ) \ *G Closes the database. You can still open another database with \ ** the same object after closing, if desired. stmt @ if stmt call sqlite3_finalize drop SQLOK: self ERR: self 0 stmt ! 0 to sstate then dbhndl @ if dbhndl @ call sqlite3_close SQLOK: self drop 0 dbhndl ! ERR: self then ;M :M ~: ( -- ) Close: self ;M :M Version: ( -- str len ) \ *G Returns the version of SQLite being used call sqlite3_libversion zcount ;M :M (Step): ( -- n ) stmt @ call sqlite3_step nip ;M :M (Execute): ( str len -- ) stmt @ if stmt call sqlite3_finalize drop SQLOK: self ERR: self 0 stmt ! 0 to sstate then tail stmt 2swap swap dbhndl @ call sqlite3_prepare_v2 SQLOK: self ERR: self 2drop 2drop drop ;M :M Execute: ( str len -- ) \ *G Execute a SQL query on the cursor. Any returned data will be in the cursor. (Execute): self stmt @ call sqlite3_bind_parameter_count nip dup to #args if exitm then begin (Step): self 5 = while drop 1 ms repeat ;M :M Requery: ( -- ) \ *G Rerun the last query. stmt @ call sqlite3_reset 2drop ;M :M FieldCnt: ( -- n ) \ *G Returns the number of columns in the current record. stmt @ call sqlite3_column_count nip ;M :M FieldType: ( field -- DataTypeEnum ) \ *G Returns the data type constant of the given column. Possible data types are: \ *L \ *| SQLITE_INTEGER | \ *| SQLITE_FLOAT | \ *| SQLITE_TEXT | \ *| SQLITE_BLOB | \ *| SQLITE_NULL | stmt @ call sqlite3_column_type nip nip ;M :M FieldName: ( field -- str len ) \ *G Returns the column name of the given column number. stmt @ call sqlite3_column_name nip nip dup if zcount else drop s" " then ;M :M GetInt: ( field -- int ) \ *G Returns an integer value of the given column on the current row. stmt @ call sqlite3_column_int nip nip ;M :M GetDouble: ( field -- d ) \ *G Returns the double of the given column on the current row. stmt @ sqlite3_column_int64 2swap 2drop swap ;M :M GetFloat: ( field -- float ) \ *G Returns the floating point value of the given column on the current row. stmt @ call sqlite3_column_double retF 2drop drop ;M :M GetStr: ( field -- str len ) \ *G Returns the string of the given column on the current row. May be much longer than 255 stmt @ call sqlite3_column_text nip nip dup if zcount else drop s" " then ;M :M GetBLOB: ( field -- addr len ) \ *G Returns the Binary Buffer of the given column on the current row. \ ** This binary data may be anything. stmt @ call sqlite3_column_bytes >r call sqlite3_column_blob nip nip r> ;M :M isNull?: ( field -- flag ) \ *G Returns true if the given field for the given flag is null FieldType: self SQLITE_NULL = ;M :M NextRow: ( -- flag ) \ *G Goes to the next row of the query result. If there are no more rows, \ ** it will return true (Step): self 100 <> ;M :M (Bind): ( -- ) #args 0= if begin (Step): self 5 = while drop 1 ms repeat then ;M :M BindInt: ( n i -- ) \ *G Binds a '?' in the query string to a integer. If there are no more question \ ** marks in the query string, the query will execute. 1+ stmt @ call sqlite3_bind_int SQLOK: self ERR: self 2drop drop -1 +to #args (bind): self ;M :M BindDouble: ( d i -- ) \ *G Binds a '?' in the query string to a double int. If there are no more question \ ** marks in the query string, the query will execute. 1+ stmt @ call sqlite3_bind_int64 SQLOK: self ERR: self 2drop 2drop -1 +to #args (bind): self ;M :M BindFloat: ( f i -- ) \ *G Binds a '?' in the query string to a floating point number. \ ** If there are no more question \ ** marks in the query string, the query will execute. 1+ >r FS>DS r> stmt @ call sqlite3_bind_double SQLOK: self ERR: self 2drop 2drop -1 +to #args (bind): self ;M :M BindStr: ( str len i -- ) \ *G Binds a '?' in the query string to a string. If there are no more question \ ** marks in the query string, the query will execute. 1+ >r swap SQLITE_TRANSIENT -rot r> stmt @ call sqlite3_bind_text SQLOK: self ERR: self 2drop 2drop drop -1 +to #args (bind): self ;M :M BindBlob: ( str len i -- ) \ *G Binds a '?' in the query string to a blob (binary buffer object, or in simpler \ ** terms, a bunch of bytes). If there are no more question \ ** marks in the query string, the query will execute. 1+ >r swap SQLITE_TRANSIENT -rot r> stmt @ call sqlite3_bind_text SQLOK: self ERR: self 2drop 2drop drop -1 +to #args (bind): self ;M ;class MODULE \ *S Examples of Usage: \ *W <br><U>Creating/Opening a Database:</U><br><br> \ *E SQLiteDB sqlite \ ** s" c:\\test.db" open: sqlite \ *W <br><U>Creating a Database in RAM:</U><br><br> \ *E SQLiteDB sqlite \ ** s" :memory:" open: sqlite \ *W <br><U>Closing a Database:</U><br><br> \ *E close: sqlite \ *W <br><U>Creating a table:</U><br><br> \ *E s" CREATE TABLE idtoname (id int, name varchar)" \ ** execute: sqlite \ *W <br><U>Inserting into a table:</U><br><br> \ *E s" INSERT INTO idtoname(id, name) VALUES(?,?)" \ ** execute: sqlite \ ** 1 0 bindint: sqlite \ ** s" Jim Hawkins" 1 bindstr: sqlite \ ** \ ** s" INSERT INTO idtoname(id, name) VALUES(?,?)" \ ** execute: sqlite \ ** 2 0 bindint: sqlite \ ** s" Billy Bones" 1 bindstr: sqlite \ ** \ ** s" INSERT INTO idtoname(id, name) VALUES(?,?)" \ ** execute: sqlite \ ** 3 0 bindint: sqlite \ ** s" Long John Silver" 1 bindstr: sqlite \ *W <br><U>Executing SQL:</U><br><br> \ *E : qdump ( -- ) \ ** fieldcnt: sqlite \ ** 0 ?do \ ** i fieldname: sqlite type tab \ ** loop cr cr \ ** begin \ ** fieldcnt: sqlite \ ** 0 ?do \ ** i getstr: sqlite type tab \ ** loop cr \ ** nextrow: sqlite \ ** until ; \ ** \ ** s" SELECT * FROM idtoname WHERE id < 1000 ORDER BY name DESC" \ ** execute: sqlite \ ** cr qdump \ ** \ *W <br><U>Deleting a table:</U><br><br> \ *E s" DROP TABLE idtoname" \ ** execute: sqlite --- NEW FILE: WinSock.f --- \ Socket Library \ Thomas Dixon \ 7/7/2006 \ *D doc\ \ *! WinSock \ *T Simple Socket Library \ *Q Tom Dixon - July 2006 \ *P This is intended to be a simple wordset for sockets in forth. \ ** The words do not match the standard socket api. It has been adapted to \ ** be easier to use in Forth. \ ** It's simplicity should make it easy to port network apps to other \ ** forth systems. anew -WinSock.f INTERNAL EXTERNAL \ these constants come from a complicated formula in winsock2.h $4004667f constant FIONREAD $8004667e constant FIONIO $8004667d constant FIONASYNC \ Import WinSock2 Dll winlibrary ws2_32.dll \ Import functions from the dll \ *S Network Formatting Words \ ** These words are for converting 16-bit and 32-bit values to the right \ ** format so any machine should be able to convert them back into their \ ** values. 1 PROC htonl ( hostlong -- u_long ) \ *G Convert a 32-bit number on the stack to a network acceptable \ ** byte-ordered value. 1 PROC htons ( hostshort -- u_short ) \ *G Convert a 16-bit number on the stack to a network acceptable \ ** byte-ordered value. 1 PROC ntohl ( netlong -- u_long ) \ *G Convert a network compatible 32-bit number on the stack to the \ ** correct 32-bit integer 1 PROC ntohs ( netshort -- u_short ) \ *G Convert a network compatible 16-bit number on the stack to the \ ** correct 16-bit integer 1 PROC inet_addr ( *cp -- in_addr ) 1 PROC inet_ntoa ( in_addr -- *char ) 2 PROC listen ( backlog sock -- int ) 4 PROC recv ( flags len *buf sock -- int ) 5 PROC select ( *timeout *exceptfds *writefds *readfds nfds -- int ) 4 PROC send ( flags len *buf sock -- int ) 2 PROC shutdown ( how sock -- int ) 3 PROC socket ( protocol type af-- sock ) 3 PROC bind ( namelen 'sock sock -- int ) 1 PROC closesocket ( sock -- int ) 3 PROC connect ( len 'sock sock -- int ) 3 PROC ioctlsocket ( *argp cmd sock -- int ) 1 PROC gethostbyname ( *name -- hostent ) 2 PROC WSAStartup ( lpWSAData wVersionRequired -- int ) 0 PROC WSACleanup ( -- int ) \ *S Socket Library and Initialization Words \ ** These words are for initializing and unloading the windows socket \ ** dll. They are automatically called when the console is initialized \ ** and right before it closes, so normally a developer would never need \ ** to use these. \ API Setup and Closure (linked to initialization and closure chains) : wsocket2-init ( -- ) \ *G Initializes the windows socket dll \n \ ** called in initialization-chain pad $202 WSAStartup drop ; : wsocket2-cleanup ( -- ) \ *G Initializes the windows socket dll \n \ ** called in initialization-chain WSACleanup drop ; initialization-chain chain-add wsocket2-init unload-chain chain-add wsocket2-cleanup wsocket2-init \ initialize sockets \ User Area Definition \ This is to make all socket functions thread-safe 16 newuser saddr \ socket address structure \ *S Main Socket Words \ ** These words represent the core of the socket library. \ ** They have been written to be thread-safe. : host>iaddr ( str len -- iaddr ) \ *G This function converts a host string to an ip address \n \ ** The host string could be anything from a domain name to ip address. \n \ ** Returns 0 if the host is unable to be looked up. pad place 0 pad c+place pad 1+ gethostbyname dup if 12 + @ @ @ then ; : iaddr>str ( iaddr -- str len ) \ *G This converts an ip address to a readable string. \ ** It does not look up the host name, the string is in the "255.255.255.255" format inet_ntoa zcount ; \ *W <br><br><U>Example:</U> simple host lookup.<br> \ *E s" www.win32forth.org" host>iaddr \ ** dup . \ should be anything other than 0 \ ** iaddr>str type \ should return ip address of win32forth.org : sock-open ( addr len port -- sock ) \ *G This opens up a new socket to a host name on a given port number \n \ ** the host name will be looked up and the port number is converted implicitly \n \ ** If the socket cannot be opened, a exception will be thrown. htons saddr 2 + w! AF_INET saddr w! host>iaddr saddr 4 + ! 0 SOCK_STREAM AF_INET socket dup 16 saddr rot connect abort" Unable to connect!" ; : sock-read ( addr len sock -- len ) \ *G Reads data from the socket to a buffer. \n \ ** It works very similarly to 'read-file', but has different return parameters \n \ ** a returned 'len' of -1 means there was a socket error (SOCKET_ERROR) \n \ ** If the provided 'len' is larger than the amount of data ready to be read from the socket, \ ** the socket will block until it has revceived the full amount of data.\n \ ** If the socket is a non-blocking socket, it will read what it can and return \ ** right away. >r swap 0 -rot r> recv ; : sock-write ( addr len sock -- len ) \ *G Write data from a buffer to the socket. \n \ ** It works very similarly to 'write-file' \n \ ** a returned 'len' of -1 means there was a socket error (SOCKET_ERROR) \n \ ** If the socket is currently unable to take any data, \ ** the socket will block until it has room in it's internal buffer to send the data.\n \ ** If the socket is a non-blocking socket, it will write what it can and return \ ** right away. (amount actually written is returned as 'len') >r swap 0 -rot r> send ; : sock-close ( sock -- ior ) \ *G Closes socket - very similar to close-file\n \ ** ior is 0 if the close was successful closesocket ; \ *W <br><br><U>Example:</U> Get data from a socket.<br> \ *W This will dump the html data from google's homepage through the use of sockets.<br> \ *E create tbuf 256 allot \ ** 0 value sock \ ** : sdump ( sock -- ) \ ** begin \ ** dup sock-read? if dup tbuf 256 rot sock-read tbuf swap type then \ ** dup sock-closed? key? or until \ ** sock-close drop ; \ ** \ ** s" www.google.com" 80 sock-open value sock \ ** s" GET / HTTP/1.0" sock sock-write . \ ** crlf$ count sock sock-write . \ ** crlf$ count sock sock-write . \ ** sock sdump \ *S Socket Listening Words \ ** These words are for writting the serving-end of network applications.\n \ ** They have also been written to be thread-safe. : sock-create ( p -- sock ) \ *G Make a new socket for listening on port 'p' \ ** Used only for server-side sockets htons saddr 2 + w! AF_INET saddr w! INADDR_ANY saddr 4 + ! 0 SOCK_STREAM AF_INET socket dup 16 saddr rot bind abort" Unable to bind socket!" ; : sock-listen ( n sock -- ) \ *G This tells a socket to start queuing sockets that want to connect.\n \ ** 'n' is the size of the queue that should be created to listen. \ ** after 'n' sockets have tried to connect and have yet to be accepted, \ ** further sockets will be refused until waiting sockets are accepted. \ ** (standard queue size is 5) listen drop ; : sock-accept ( sock -- sock iaddr ) \ *G This will accept a socket that is in the listening queue. \n \ ** 'iaddr' is the ip address of the connecting socket and can be converted \ ** into an easy-to-read number through the 'iaddr>str' word. \n \ ** If no sockets are in queue to be accepted, this function will block \ ** until one tries to connect. \n \ ** If the socket is a non-blocking socket, then the function will fail \ ** and return immediately if the queue has no sockets to accept. \n \ ** If the function fails, it will return '0' as the iaddr and '-1' \ ** (or INVALID_SOCKET) as the socket. 16 >r rp@ saddr rot call accept r> drop dup INVALID_SOCKET = if 0 else saddr 4 + @ then ; \ *S Asyncronous Socket Words \ ** These words are for the ability to use the sockets without having them block.\n \ ** Very useful for apps that need to do many things at once. : sock-read? ( sock -- n ) \ *G This function returns the amount of data that the socket can read \ ** without blocking. It is useful for working with socket asyncronously.\n \ ** It will return -1 if the socket has no data to read (will block, or socket closed). 0 >r rp@ FIONREAD rot ioctlsocket if r> drop -1 exit then r> ; : sock-write? ( sock -- flag ) \ *G This function returns true if the socket can write data without blocking.\n \ ** You can send 0-1024 bytes to the socket asyncronously without blocking if \ ** the flag is true. 1 saddr ! saddr 4 + ! 0 saddr 8 + ! 0 saddr 12 + ! saddr 8 + 0 saddr 0 0 select ; : sock-accept? ( sock -- flag ) \ *G This function returns true if the socket has other sockets in queue that \ ** want to be connected. It is to be used in conjunction with 'sock-accept' \ ** so you can call sock-accept without blocking. 1 saddr ! saddr 4 + ! 0 saddr 8 + ! 0 saddr 12 + ! saddr 8 + 0 0 saddr 0 select ; : sock-closed? ( sock -- flag ) \ *G This function tests to see if the socket has been closed at the other end \ ** or broken at any point. dup sock-accept? 1 = swap sock-read? 0 = and ; : sock-err? ( sock -- n ) \ *G This function tests to see if there are any errors on the socket. 1 saddr ! saddr 4 + ! 0 saddr 8 + ! 0 saddr 12 + ! saddr 8 + saddr 0 0 0 select ; : sock-blocked ( flag sock -- ) \ *G This function sets a socket to blocked or unblocked mode.\n \ ** If the flag is false, the socket will be set to 'unblocked'.\n \ ** If the flag is true, the socket will be set to 'blocked'.\n swap not >r rp@ FIONIO rot ioctlsocket r> 2drop ; MODULE \ *Z |
From: Dirk B. <db...@us...> - 2007-05-26 10:06:14
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3872/doc Added Files: SQLite.htm WinSock.htm Log Message: - Tom Dixon's WinSock and SQLite library's added --- NEW FILE: WinSock.htm --- <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> </title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: WinSock.htm,v 1.1 2007/05/26 10:06:10 dbu_de Exp $"> <img border="0" src="TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>Simple Socket Library </h1><hr /><h3><i>Tom Dixon - July 2006 </i></h3><p></p><p>This is intended to be a simple wordset for sockets in forth. The words do not match the standard socket api. It has been adapted to be easier to use in Forth. It's simplicity should make it easy to port network apps to other forth systems. </p><h2>Network Formatting Words </h2>These words are for converting 16-bit and 32-bit values to the right format so any machine should be able to convert them back into their values. <pre><b><a name="0">1 PROC htonl ( hostlong -- u_long ) </a></b></pre><p>Convert a 32-bit number on the stack to a network acceptable byte-ordered value. </p><pre><b><a name="1">1 PROC htons ( hostshort -- u_short ) </a></b></pre><p>Convert a 16-bit number on the stack to a network acceptable byte-ordered value. </p><pre><b><a name="2">1 PROC ntohl ( netlong -- u_long ) </a></b></pre><p>Convert a network compatible 32-bit number on the stack to the correct 32-bit integer </p><pre><b><a name="3">1 PROC ntohs ( netshort -- u_short ) </a></b></pre><p>Convert a network compatible 16-bit number on the stack to the correct 16-bit integer </p><h2>Socket Library and Initialization Words </h2>These words are for initializing and unloading the windows socket dll. They are automatically called when the console is initialized and right before it closes, so normally a developer would never need to use these. <pre><b><a name="4">: wsocket2-init ( -- ) </a></b></pre><p>Initializes the windows socket dll <br /> called in initialization-chain </p><pre><b><a name="5">: wsocket2-cleanup ( -- ) </a></b></pre><p>Initializes the windows socket dll <br /> called in initialization-chain </p><h2>Main Socket Words </h2>These words represent the core of the socket library. They have been written to be thread-safe. <pre><b><a name="6">: host>iaddr ( str len -- iaddr ) </a></b></pre><p>This function converts a host string to an ip address <br /> The host string could be anything from a domain name to ip address. <br /> Returns 0 if the host is unable to be looked up. </p><pre><b><a name="7">: iaddr>str ( iaddr -- str len ) </a></b></pre><p>This converts an ip address to a readable string. It does not look up the host name, the string is in the "255.255.255.255" format </p><br><br><U>Example:</U> simple host lookup.<br> <pre>s" www.win32forth.org" host>iaddr dup . \ should be anything other than 0 iaddr>str type \ should return ip address of win32forth.org </pre><pre><b><a name="8">: sock-open ( addr len port -- sock ) </a></b></pre><p>This opens up a new socket to a host name on a given port number <br /> the host name will be looked up and the port number is converted implicitly <br /> If the socket cannot be opened, a exception will be thrown. </p><pre><b><a name="9">: sock-read ( addr len sock -- len ) </a></b></pre><p>Reads data from the socket to a buffer. <br /> It works very similarly to 'read-file', but has different return parameters <br /> a returned 'len' of -1 means there was a socket error (SOCKET_ERROR) <br /> If the provided 'len' is larger than the amount of data ready to be read from the socket, the socket will block until it has revceived the full amount of data.<br /> If the socket is a non-blocking socket, it will read what it can and return right away. </p><pre><b><a name="10">: sock-write ( addr len sock -- len ) </a></b></pre><p>Write data from a buffer to the socket. <br /> It works very similarly to 'write-file' <br /> a returned 'len' of -1 means there was a socket error (SOCKET_ERROR) <br /> If the socket is currently unable to take any data, the socket will block until it has room in it's internal buffer to send the data.<br /> If the socket is a non-blocking socket, it will write what it can and return right away. (amount actually written is returned as 'len') </p><pre><b><a name="11">: sock-close ( sock -- ior ) </a></b></pre><p>Closes socket - very similar to close-file<br /> ior is 0 if the close was successful </p><br><br><U>Example:</U> Get data from a socket.<br> This will dump the html data from google's homepage through the use of sockets.<br> <pre>create tbuf 256 allot 0 value sock : sdump ( sock -- ) begin dup sock-read? if dup tbuf 256 rot sock-read tbuf swap type then dup sock-closed? key? or until sock-close drop ; s" www.google.com" 80 sock-open value sock s" GET / HTTP/1.0" sock sock-write . crlf$ count sock sock-write . crlf$ count sock sock-write . sock sdump </pre><h2>Socket Listening Words </h2>These words are for writting the serving-end of network applications.<br /> They have also been written to be thread-safe. <pre><b><a name="12">: sock-create ( p -- sock ) </a></b></pre><p>Make a new socket for listening on port 'p' Used only for server-side sockets </p><pre><b><a name="13">: sock-listen ( n sock -- ) </a></b></pre><p>This tells a socket to start queuing sockets that want to connect.<br /> 'n' is the size of the queue that should be created to listen. after 'n' sockets have tried to connect and have yet to be accepted, further sockets will be refused until waiting sockets are accepted. (standard queue size is 5) </p><pre><b><a name="14">: sock-accept ( sock -- sock iaddr ) </a></b></pre><p>This will accept a socket that is in the listening queue. <br /> 'iaddr' is the ip address of the connecting socket and can be converted into an easy-to-read number through the 'iaddr>str' word. <br /> If no sockets are in queue to be accepted, this function will block until one tries to connect. <br /> If the socket is a non-blocking socket, then the function will fail and return immediately if the queue has no sockets to accept. <br /> If the function fails, it will return '0' as the iaddr and '-1' (or INVALID_SOCKET) as the socket. </p><h2>Asyncronous Socket Words </h2>These words are for the ability to use the sockets without having them block.<br /> Very useful for apps that need to do many things at once. <pre><b><a name="15">: sock-read? ( sock -- n ) </a></b></pre><p>This function returns the amount of data that the socket can read without blocking. It is useful for working with socket asyncronously.<br /> It will return -1 if the socket has no data to read (will block, or socket closed). </p><pre><b><a name="16">: sock-write? ( sock -- flag ) </a></b></pre><p>This function returns true if the socket can write data without blocking.<br /> You can send 0-1024 bytes to the socket asyncronously without blocking if the flag is true. </p><pre><b><a name="17">: sock-accept? ( sock -- flag ) </a></b></pre><p>This function returns true if the socket has other sockets in queue that want to be connected. It is to be used in conjunction with 'sock-accept' so you can call sock-accept without blocking. </p><pre><b><a name="18">: sock-closed? ( sock -- flag ) </a></b></pre><p>This function tests to see if the socket has been closed at the other end or broken at any point. </p><pre><b><a name="19">: sock-err? ( sock -- n ) </a></b></pre><p>This function tests to see if there are any errors on the socket. </p><pre><b><a name="20">: sock-blocked ( flag sock -- ) </a></b></pre><p>This function sets a socket to blocked or unblocked mode.<br /> If the flag is false, the socket will be set to 'unblocked'.<br /> If the flag is true, the socket will be set to 'blocked'.<br /> </p><hr><p>Document $Id: WinSock.htm,v 1.1 2007/05/26 10:06:10 dbu_de Exp $</p> </body></html> --- NEW FILE: SQLite.htm --- <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta name="GENERATOR" content="dexh v03"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> </title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: SQLite.htm,v 1.1 2007/05/26 10:06:10 dbu_de Exp $"> <img border="0" src="TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>SQLite -- Database Class for SQLite </h1><hr /><h3><i>Tom Dixon </i></h3><p>This class provides an interface to SQLite databases. </p><h2>SQLite Behavior </h2>SQLite operates on database files. Files are opened as read-only, if no update occurs, and can be shared through several applications. Writes cause a block until the file can be opened as read/write. This makes the locking scheme very efficient and easy to work with.<br /><br /> SQLite is very fast, flexible, and simple. One very nice feature is that SQLite will convert types as best as it can for you if you want a type different from the native database type.<br /><br /> For more information about SQLite, please see <A href="http://www.sqlite.org/">www.sqlite.org</A> <pre><b><a name="0">:class SQLiteDB <SUPER Object </a></b></pre><p>SQLiteDB is an interface to SQLite. </p><pre><b><a name="1">:M ERR: ( -- ) \ thows an error on any problem </a></b></pre><p>Displays any error that might have occured. </p><pre><b><a name="2">:M Open: ( str len -- ) </a></b></pre><p>Opens a database file so we can execute operations on it.<br /> If the string is ":memory:" the database is actually created in memory instead of on disk, and should be faster. </p><pre><b><a name="3">:M Close: ( -- flag ) </a></b></pre><p>Closes the database. You can still open another database with the same object after closing, if desired. </p><pre><b><a name="4">:M Version: ( -- str len ) </a></b></pre><p>Returns the version of SQLite being used </p><pre><b><a name="5">:M Execute: ( str len -- ) </a></b></pre><p>Execute a SQL query on the cursor. Any returned data will be in the cursor. </p><pre><b><a name="6">:M Requery: ( -- ) </a></b></pre><p>Rerun the last query. </p><pre><b><a name="7">:M FieldCnt: ( -- n ) </a></b></pre><p>Returns the number of columns in the current record. </p><pre><b><a name="8">:M FieldType: ( field -- DataTypeEnum ) </a></b></pre><p>Returns the data type constant of the given column. Possible data types are: </p><table border="1"><tr><td>SQLITE_INTEGER </td> </tr> <tr><td>SQLITE_FLOAT </td> </tr> <tr><td>SQLITE_TEXT </td> </tr> <tr><td>SQLITE_BLOB </td> </tr> <tr><td>SQLITE_NULL </td> </tr> </table><pre><b><a name="9">:M FieldName: ( field -- str len ) </a></b></pre><p>Returns the column name of the given column number. </p><pre><b><a name="10">:M GetInt: ( field -- int ) </a></b></pre><p>Returns an integer value of the given column on the current row. </p><pre><b><a name="11">:M GetDouble: ( field -- d ) </a></b></pre><p>Returns the double of the given column on the current row. </p><pre><b><a name="12">:M GetFloat: ( field -- float ) </a></b></pre><p>Returns the floating point value of the given column on the current row. </p><pre><b><a name="13">:M GetStr: ( field -- str len ) </a></b></pre><p>Returns the string of the given column on the current row. May be much longer than 255 </p><pre><b><a name="14">:M GetBLOB: ( field -- addr len ) </a></b></pre><p>Returns the Binary Buffer of the given column on the current row. This binary data may be anything. </p><pre><b><a name="15">:M isNull?: ( field -- flag ) </a></b></pre><p>Returns true if the given field for the given flag is null </p><pre><b><a name="16">:M NextRow: ( -- flag ) </a></b></pre><p>Goes to the next row of the query result. If there are no more rows, it will return true </p><pre><b><a name="17">:M BindInt: ( n i -- ) </a></b></pre><p>Binds a '?' in the query string to a integer. If there are no more question marks in the query string, the query will execute. </p><pre><b><a name="18">:M BindDouble: ( d i -- ) </a></b></pre><p>Binds a '?' in the query string to a double int. If there are no more question marks in the query string, the query will execute. </p><pre><b><a name="19">:M BindFloat: ( f i -- ) </a></b></pre><p>Binds a '?' in the query string to a floating point number. If there are no more question marks in the query string, the query will execute. </p><pre><b><a name="20">:M BindStr: ( str len i -- ) </a></b></pre><p>Binds a '?' in the query string to a string. If there are no more question marks in the query string, the query will execute. </p><pre><b><a name="21">:M BindBlob: ( str len i -- ) </a></b></pre><p>Binds a '?' in the query string to a blob (binary buffer object, or in simpler terms, a bunch of bytes). If there are no more question marks in the query string, the query will execute. </p><h2>Examples of Usage: </h2><br><U>Creating/Opening a Database:</U><br><br> <pre>SQLiteDB sqlite s" c:\test.db" open: sqlite </pre><br><U>Creating a Database in RAM:</U><br><br> <pre>SQLiteDB sqlite s" :memory:" open: sqlite </pre><br><U>Closing a Database:</U><br><br> <pre>close: sqlite </pre><br><U>Creating a table:</U><br><br> <pre>s" CREATE TABLE idtoname (id int, name varchar)" execute: sqlite </pre><br><U>Inserting into a table:</U><br><br> <pre>s" INSERT INTO idtoname(id, name) VALUES(?,?)" execute: sqlite 1 0 bindint: sqlite s" Jim Hawkins" 1 bindstr: sqlite s" INSERT INTO idtoname(id, name) VALUES(?,?)" execute: sqlite 2 0 bindint: sqlite s" Billy Bones" 1 bindstr: sqlite s" INSERT INTO idtoname(id, name) VALUES(?,?)" execute: sqlite 3 0 bindint: sqlite s" Long John Silver" 1 bindstr: sqlite </pre><br><U>Executing SQL:</U><br><br> <pre>: qdump ( -- ) fieldcnt: sqlite 0 ?do i fieldname: sqlite type tab loop cr cr begin fieldcnt: sqlite 0 ?do i getstr: sqlite type tab loop cr nextrow: sqlite until ; s" SELECT * FROM idtoname WHERE id < 1000 ORDER BY name DESC" execute: sqlite cr qdump </pre><br><U>Deleting a table:</U><br><br> <pre>s" DROP TABLE idtoname" execute: sqlite </pre> |
From: Dirk B. <db...@us...> - 2007-05-26 10:06:14
|
Update of /cvsroot/win32forth/win32forth In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3872 Added Files: sqlite3.dll Log Message: - Tom Dixon's WinSock and SQLite library's added --- NEW FILE: sqlite3.dll --- (This appears to be a binary file; contents omitted.) |
From: Dirk B. <db...@us...> - 2007-05-26 08:27:54
|
Update of /cvsroot/win32forth/win32forth/apps/Win32ForthIDE In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv389/apps/Win32ForthIDE Modified Files: CommandID.f EdDebug.f EdMenu.f EdVersion.f Main.f Log Message: - Changed the shortkey for the "Winodw" menu to ALT-W. - Made the "Data Iquire" button in the "Debug" dialog work. - "Set breakpoint" CTRL+B command added Index: Main.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/Main.f,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** Main.f 14 May 2007 05:37:39 -0000 1.40 --- Main.f 26 May 2007 08:27:49 -0000 1.41 *************** *** 953,956 **** --- 953,957 ---- 0 VK_F11 IDM_DEBUG ACCELENTRY 0 VK_F10 IDM_HTML_PREVIEW ACCELENTRY + FCONTROL 'B' IDM_SET_BREAK_POINT ACCELENTRY \ Help menu Index: EdVersion.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/EdVersion.f,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** EdVersion.f 15 Apr 2007 02:55:45 -0000 1.5 --- EdVersion.f 26 May 2007 08:27:49 -0000 1.6 *************** *** 1,5 **** \ $Id$ ! 10203 value sciedit_version# \ Version numbers: v.ww.rr --- 1,5 ---- \ $Id$ ! 10204 value sciedit_version# \ Version numbers: v.ww.rr *************** *** 273,274 **** --- 273,281 ---- - Added "Search and Replace" ability to the IDE editor. In the process corrected a few bugs in ScintillaControl.f . + + \ changes for Version 1.02.04 + dbu Samstag, Mai 26 2007 + - Changed the shortkey for the "Winodw" menu to ALT-W. + - Made the "Data Iquire" button in the "Debug" dialog work. + - "Set breakpoint" CTRL+B command added + Index: CommandID.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/CommandID.f,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** CommandID.f 15 Apr 2007 02:55:45 -0000 1.10 --- CommandID.f 26 May 2007 08:27:49 -0000 1.11 *************** *** 97,100 **** --- 97,101 ---- NewID IDM_HANDLEW32FMSG NewID IDM_RESET_CON_IO + NewID IDM_SET_BREAK_POINT \ Window menu Index: EdMenu.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/EdMenu.f,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** EdMenu.f 26 May 2007 05:51:12 -0000 1.20 --- EdMenu.f 26 May 2007 08:27:49 -0000 1.21 *************** *** 165,168 **** --- 165,169 ---- :MenuItem mp_reset "&Reset" IDM_RESET_CON_IO DoCommand ; MenuSeparator + :MenuItem mp_setbp "&Set breakpoint...\tCTRL+B" IDM_SET_BREAK_POINT DoCommand ; :MenuItem mp_debug "&Debug...\tF11" IDM_DEBUG DoCommand ; :MenuItem mp_HandleW32FMsg "&Handle debug messages?" IDM_HANDLEW32FMSG DoCommand ; *************** *** 359,368 **** CreateBackup? Check: mp_backup SaveAllBeforeCompile? Check: mp_sabcompile ! StripTrailingWhitespace? Check: mp_rtwh ! FinalNewLine? Check: mp_efle \ Win32Forth menu ActiveRemote ActiveChild = HandleW32FMsg? and Enable: mp_debug ! HandleW32FMsg? Check: mp_HandleW32FMsg \ Help menu --- 360,370 ---- CreateBackup? Check: mp_backup SaveAllBeforeCompile? Check: mp_sabcompile ! StripTrailingWhitespace? Check: mp_rtwh ! FinalNewLine? Check: mp_efle \ Win32Forth menu ActiveRemote ActiveChild = HandleW32FMsg? and Enable: mp_debug ! ActiveRemote ActiveChild = HandleW32FMsg? and Enable: mp_setbp ! HandleW32FMsg? Check: mp_HandleW32FMsg \ Help menu Index: EdDebug.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/EdDebug.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** EdDebug.f 13 May 2007 07:52:26 -0000 1.2 --- EdDebug.f 26 May 2007 08:27:49 -0000 1.3 *************** *** 43,46 **** --- 43,48 ---- 0 WM_DONEBP win32forth-message ; + NewEditDialog InquireDlg "Inquire for Data Item" "Get Current Value for:" "Inquire" "" "" + 0 value debug-buttons? *************** *** 54,61 **** --- 56,65 ---- int HexBase Font dbFont + int inq-running? :M ClassInit: ( -- ) ClassInit: super FALSE to HexBase \ FALSE = Decimal, TRUE = Hex + FALSE to inq-running? 8 Width: dbFont 14 Height: dbFont *************** *** 64,74 **** :M GetTemplate: ( -- template ) ! template ! ;M :M ExWindowStyle: ( -- ) ! ExWindowStyle: super ! WS_EX_TOOLWINDOW or ! ;M : "addstack { adr len \ ztemp -- } --- 68,75 ---- :M GetTemplate: ( -- template ) ! template ;M :M ExWindowStyle: ( -- ) ! ExWindowStyle: super WS_EX_TOOLWINDOW or ;M : "addstack { adr len \ ztemp -- } *************** *** 141,144 **** --- 142,173 ---- ;M + : show-inquire { \ temp$ -- } + MAXSTRING LocalAlloc: temp$ + s" " temp$ place \ init to empty type + ed-result @ 4 min 0 + ?DO ed-result i 1+ cells+ @ n>" temp$ +place + s" " temp$ +place + LOOP temp$ count IDT_RESULT SetDlgItemText: self ; + + : inquirebp ( -- ) + \ *G inquire for the value of a data item + ed-ptr 0= ?EXIT \ only if we have shared memory + inq-running? 0= + IF TRUE to inq-running? + + SelTextToPad ?dup + if ed-inquire place + else drop + then + + ed-inquire self Start: InquireDlg + ed-inquire c@ 0> and + IF 0 WM_INQUIRE win32forth-message + THEN + + FALSE to inq-running? + ELSE beep + THEN ; + :M On_Init: ( -- ) On_Init: super *************** *** 168,171 **** --- 197,201 ---- IDB_HERE OF herebp ENDOF IDB_DONE OF donebp ENDOF + IDB_INQUIRE OF inquirebp show-inquire ENDOF IDR_HEX OF TRUE to HexBase ShowStack: self ENDOF IDR_DECIMAL OF FALSE to HexBase ShowStack: self ENDOF *************** *** 184,216 **** ;Object ! : debug-buttons ( -- ) \ open the Debug dialog Frame Start: DbgButtonsDlg TRUE to debug-buttons? ; ! : receive-stack ( -- ) \ get stack from Forth ShowStack: DbgButtonsDlg ; : receive-debug ( -- ) ShowDebug: DbgButtonsDlg ; \ ----------------------------------------------------------------------------- \ ----------------------------------------------------------------------------- - \ : zMessageBox ( szString -- ) - \ z" Notice" - \ MB_OK MB_ICONSTOP or - \ MessageBox: Frame ; - \ - \ MAXSTRING pointer debug-buf - \ NewEditDialog DebugDlg "Insert BreakPoint at Word" "BreakPoint at: ' [ vocabulary (sp) ] word '" "Set" "" "" - \ - \ : "debug-word ( a1 n1 -- ) - \ ed-name place \ the name we want debugged - \ ed-response off \ clear return result - \ 0 WM_SETBP win32forth-message - \ ed-response @ 0= - \ IF z" Failed to set BreakPoint!" zMessageBox - \ THEN - \ ed-response @ \ browse mode it BP is set - \ IF debug-buttons - \ THEN ; --- 214,259 ---- ;Object ! : debug-buttons ( -- ) ! \ *G Open the Debug dialog Frame Start: DbgButtonsDlg TRUE to debug-buttons? ; ! : receive-stack ( -- ) ! \ *G Get stack from Forth ShowStack: DbgButtonsDlg ; : receive-debug ( -- ) + \ *G ??? ShowDebug: DbgButtonsDlg ; \ ----------------------------------------------------------------------------- \ ----------------------------------------------------------------------------- + MAXSTRING pointer debug-buf + NewEditDialog DebugDlg "Set BreakPoint at Word" "BreakPoint at: ' [ vocabulary (sp) ] word '" "Set" "" "" + + : "debug-word ( a1 n1 -- ) + \ *G Set a breakpoint on word a1 n1 + ed-name place \ the name we want debugged + ed-response off \ clear return result + 0 WM_SETBP win32forth-message + ed-response @ 0= + IF z" Failed to set BreakPoint!" WindowTitle: MainWindow + [ MB_OK MB_ICONERROR or ] literal + GetHandle: MainWindow call MessageBox drop + THEN + ed-response @ \ browse mode it BP is set + IF debug-buttons + THEN ; + + : debug-word ( -- ) + \ *G Set a breakpoint on a word + SelTextToPad ?dup + if debug-buf place + debug-buf count -trailing nip debug-buf c! \ no trailing bl's + else drop + then + + debug-buf MainWindow start: DebugDlg + IF debug-buf count "debug-word + THEN ; IDM_SET_BREAK_POINT SetCommand |
From: Dirk B. <db...@us...> - 2007-05-26 05:51:25
|
Update of /cvsroot/win32forth/win32forth/apps/Win32ForthIDE In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv8945/apps/Win32ForthIDE Modified Files: EdMenu.f Log Message: - Minor bug fix Index: EdMenu.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/EdMenu.f,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** EdMenu.f 28 Apr 2007 10:02:29 -0000 1.19 --- EdMenu.f 26 May 2007 05:51:12 -0000 1.20 *************** *** 150,157 **** :MenuItem mp_sabcompile "&Save all files before Compile" IDM_SAVE_ALL_BEFORE_COMPILE DoCommand ; :MenuItem mp_compileproject "&Always compile main Project file" IDM_COMPILE_PROJECT DoCommand ; - MenuSeparator :MenuItem mp_tabs "&Set Tab options..." IDM_TABS DoCommand ; ! MenuItem " IDE Preferences " IDM_PREFERENCES DoCommand ; MenuSeparator :MenuItem mp_showsb "&Show Statusbar" IDM_SHOW_STATUSBAR DoCommand ; --- 150,156 ---- :MenuItem mp_sabcompile "&Save all files before Compile" IDM_SAVE_ALL_BEFORE_COMPILE DoCommand ; :MenuItem mp_compileproject "&Always compile main Project file" IDM_COMPILE_PROJECT DoCommand ; MenuSeparator :MenuItem mp_tabs "&Set Tab options..." IDM_TABS DoCommand ; ! MenuItem "IDE &Preferences" IDM_PREFERENCES DoCommand ; MenuSeparator :MenuItem mp_showsb "&Show Statusbar" IDM_SHOW_STATUSBAR DoCommand ; *************** *** 159,163 **** \ :MenuItem mp_customizetb "&Customize toolbar" Customize: ControlToolbar ; - Popup "&Tools" MenuItem "&Win32Forth" Start-Win32Forth ; --- 158,161 ---- *************** *** 170,174 **** :MenuItem mp_HandleW32FMsg "&Handle debug messages?" IDM_HANDLEW32FMSG DoCommand ; ! POPUP "W&indow" :MenuItem mf_tile_hor "Tile &horizontally" IDM_TILE_HORIZONTAL DoCommand ; :MenuItem mf_tile_ver "Tile &vertically" IDM_TILE_VERTICAL DoCommand ; --- 168,172 ---- :MenuItem mp_HandleW32FMsg "&Handle debug messages?" IDM_HANDLEW32FMSG DoCommand ; ! POPUP "&Window" :MenuItem mf_tile_hor "Tile &horizontally" IDM_TILE_HORIZONTAL DoCommand ; :MenuItem mf_tile_ver "Tile &vertically" IDM_TILE_VERTICAL DoCommand ; |
From: Dirk B. <db...@us...> - 2007-05-26 05:39:21
|
Update of /cvsroot/win32forth/win32forth/apps/Player4 In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv4015/apps/Player4 Modified Files: Pl_Toolset.f Log Message: - GetLongPathName() isn't supported under Win95 and NT4. So I changed player4 to use GetLongPathName() only under W98 and w2k or later. Index: Pl_Toolset.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/Pl_Toolset.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 Binary files /tmp/cvsdl4Sw1 and /tmp/cvsJcgKJq differ |
From: George H. <geo...@us...> - 2007-05-23 08:13:03
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv28495/win32forth-stc/src Modified Files: words.f Added Files: CLASSDBG.F Log Message: gah: on-allwords now working plus classdbg (with some utilities commented out) added Index: words.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/words.f,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** words.f 22 May 2007 07:36:20 -0000 1.5 --- words.f 23 May 2007 08:12:58 -0000 1.6 *************** *** 195,199 **** : WORDS ( -<optional_name>- ) \ WORDS partial-string will focus the list true to with-tabs? _words ; ! (( : on-allwords { theCFA \ vocBuf -- } 512 cells LocalAlloc: vocBuf --- 195,199 ---- : WORDS ( -<optional_name>- ) \ WORDS partial-string will focus the list true to with-tabs? _words ; ! : on-allwords { theCFA \ vocBuf -- } 512 cells LocalAlloc: vocBuf *************** *** 201,207 **** begin dup vlink>voc dup voc#threads >r ! dup voc>vxt@ @ ! dup doClass = \ don't look through classes ! swap do|Class = or 0= \ don't look through classes if vocBuf r@ cells move \ copy vocabulary up begin vocBuf r@ largest dup --- 201,205 ---- begin dup vlink>voc dup voc#threads >r ! dup voc>vxt@ ?IsClass not \ don't look through classes if vocBuf r@ cells move \ copy vocabulary up begin vocBuf r@ largest dup *************** *** 212,216 **** then r>drop @ dup 0= ! until drop ; )) in-application --- 210,214 ---- then r>drop @ dup 0= ! until drop ; in-application --- NEW FILE: CLASSDBG.F --- \ $Id: CLASSDBG.F,v 1.1 2007/05/23 08:12:58 georgeahubert Exp $ \ *D doc \ *! p-classdbg W32F classdbg \ *T Class Debugging Words \ *P Win32Forth contains some miscellaneous words to help with developing Classes and Objects. cr .( Loading Object Debugging...) internal also classes : .method ( mlink -- mlink ) dup cell+ @ unhash type 14 #tab space 14 ?cr ; : _methods ( class_body -- ) MFA #mlists 0 do dup i cells+ begin @ ?dup while .method repeat loop drop ; (( : ?.match ( n lfa -- n ) link> dup @ docon = if 2dup execute = if >name id. 20 #tab space 20 ?cr else drop then else drop then ; : #matches ( n -- ) cr hash-wid voc#threads 0 do ['] ?.match hash-wid i cells+ do-link loop drop ; : "matches ( addr len -- ) 2dup upper method-hash #matches ; )) previous external also classes \ *S Glossary : cmethods ( 'class' -- ) \ W32F Class debug \ *G Print out all the methods of a class. { \ superlist -- } cr ." New Methods :-" cr ' >body dup sfa @ swap #mlists 0 do 2dup mfa i cells+ swap mfa i cells+ @ to superlist begin @ dup superlist <> while .method repeat drop loop drop cr ." Inherited Methods :-" cr _methods ; : methods ( object-address -- ) \ W32F Class debug \ *G Print out all the methods of an object. depth 0= if ' execute then cr obj>class _methods ; : ivars ( object-address -- ) \ W32F Class debug \ *G Print out all the object IVARs of an object. depth 0= if ' execute then cr obj>class IFA begin @ ?dup while dup cell+ @ unhash type 10 #tab ." (" dup 3 cells+ @ 1 .r ." )" 10 #tab space 20 ?cr repeat ; (( : matches ( -<name>- ) \ W32F Class debug \ *G Print out all the method selectors and IVAR names that have the same hash value as \ ** -<name>- will be assigned. If -<name>- is already in use as a selector or an IVAR name \ ** then it will appear in the list. bl word count "matches ; )) previous INTERNAL 0 value theClass also classes : .obj ( nfa -- ) dup name>xt dup ?IsObj if >body @ theClass = if nfa-count type cr else drop then else 2drop then ; previous EXTERNAL also classes : objects ( 'class' -- ) \ W32F Class debug \ *G Display all of the instances of 'class'. ' >body to theClass ['] .obj on-allwords ; previous MODULE \s also classes also hidden also bug \ GetMethod and [GetMethod] have been moved to Class.f : msee ( -<method object>- ) \ W32F Class debug \ *G Display the source code of the method. Either a Class or Object can be supplied. GetMethod cr ." :M " dup .m0name 2 spaces dup 2 cells+ @ if cell+ .locals \ display locals if present else 3 cells+ then \ step to the PFA .pfa ; \ decompile the definition : mdebug ( -<method object>- ) \ W32F Class debug \ *G Set debugging of the method. An Object must be supplied (Classes aren't allowed). \ ** NOTE the method will be debugged for all objects that respond to it. unbug false to ?dbg-cont \ turn off continuous step base @ to debug-base GetMethod obj-save 0= abort" Must specify an Object, not a Class!" 3 cells+ tracing ; : mdbg ( -<method object>- ) \ W32F Class debug \ *G Set debugging of the method and then execute it. \ ** An Object must be supplied (Classes aren't allowed). \ ** NOTE the method will be debugged for all objects that respond to it. >in @ mdebug >in ! ; previous previous previous \ *Z |
From: George H. <geo...@us...> - 2007-05-22 07:44:43
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv12498/win32forth/src Modified Files: GENERIC.F Log Message: gah:minor mod Index: GENERIC.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/GENERIC.F,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** GENERIC.F 21 May 2007 09:57:26 -0000 1.16 --- GENERIC.F 22 May 2007 07:44:39 -0000 1.17 *************** *** 34,40 **** \ *S Glossary ! cr .( Loading Generic Window...) ! only forth also definitions decimal in-application --- 34,40 ---- \ *S Glossary ! Needs Dc.f ! cr .( Loading Generic Window...) in-application |
From: George H. <geo...@us...> - 2007-05-22 07:36:43
|
Update of /cvsroot/win32forth/win32forth-stc/src/lib In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv9168/win32forth-stc/src/lib Modified Files: TrayWindow.f Log Message: gah:modified .classes to ignore the anonymous class of :objects, removed name> and voc>vcfa. Moved get-mouse-xy to generic.f and made thread safe (per the ITC). Index: TrayWindow.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/lib/TrayWindow.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TrayWindow.f 8 May 2007 08:31:46 -0000 1.1 --- TrayWindow.f 22 May 2007 07:36:20 -0000 1.2 *************** *** 14,18 **** Require window.f - Require control.f cr .( Loading TrayWindow class...) --- 14,17 ---- |
From: George H. <geo...@us...> - 2007-05-22 07:36:38
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv9168/win32forth-stc/src Modified Files: CONTROL.F Class.f GENERIC.F dthread.f words.f Log Message: gah:modified .classes to ignore the anonymous class of :objects, removed name> and voc>vcfa. Moved get-mouse-xy to generic.f and made thread safe (per the ITC). Index: dthread.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/dthread.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dthread.f 20 May 2007 15:09:15 -0000 1.2 --- dthread.f 22 May 2007 07:36:20 -0000 1.3 *************** *** 15,19 **** : count-voc ( voc -- ) dup voc#threads >r ! dup voc>vcfa ?isclass not \ don't look through classes if r@ 0 --- 15,19 ---- : count-voc ( voc -- ) dup voc#threads >r ! dup voc>vxt@ ?isclass not \ don't look through classes if r@ 0 *************** *** 58,62 **** : .thread ( n1 -- ) \ display a thread of context vocabulary >r ! context @ dup voc>vcfa >name cr ." Vocabulary: " .id cr ." Thread " r@ . dup voc#threads ." of " dup . ." threads" cr --- 58,62 ---- : .thread ( n1 -- ) \ display a thread of context vocabulary >r ! context @ dup voc>vxt@ >name cr ." Vocabulary: " .id cr ." Thread " r@ . dup voc#threads ." of " dup . ." threads" cr *************** *** 64,68 **** : .threads ( -- ) ! context @ dup voc>vcfa >name cr ." Vocabulary: " .id dup voc#threads 0 do cr ." Thread: " i . cr --- 64,68 ---- : .threads ( -- ) ! context @ dup voc>vxt@ >name cr ." Vocabulary: " .id dup voc#threads 0 do cr ." Thread: " i . cr *************** *** 76,80 **** 0 to #thread-over context @ count-voc ! context @ dup voc>vcfa >name cr ." Vocabulary: " .id cr dup voc#threads 0 do ." Thread:Depth " 13 ?line --- 76,80 ---- 0 to #thread-over context @ count-voc ! context @ dup voc>vxt@ >name cr ." Vocabulary: " .id cr dup voc#threads 0 do ." Thread:Depth " 13 ?line Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/Class.f,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Class.f 21 May 2007 14:16:59 -0000 1.11 --- Class.f 22 May 2007 07:36:20 -0000 1.12 *************** *** 1600,1608 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ - synonym voc>vcfa voc>vxt@ - synonym name> name>xt - IN-SYSTEM : .CLASSES ( -- ) \ W32F Class \ *G Display all classes in the system. --- 1600,1607 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ IN-SYSTEM + also classes + : .CLASSES ( -- ) \ W32F Class \ *G Display all classes in the system. *************** *** 1611,1622 **** voc-link @ BEGIN dup vlink>voc ! voc>vcfa dup ?isClass ! IF dup >name name> 0= ! \ ['] [UNKNOWN] = \ if not found ! IF drop \ then discard the class ! ELSE .name ! 20 #tab 20 ?cr ! THEN ! ELSE drop THEN @ dup 0= --- 1610,1620 ---- voc-link @ BEGIN dup vlink>voc ! voc>vxt@ dup ?isClass ! IF dup ['] [NoNameClass] = \ if :Object ! IF drop \ then discard the class ! ELSE .name ! 20 #tab 20 ?cr ! THEN ! ELSE drop THEN @ dup 0= *************** *** 1627,1631 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! also classes also hidden : GetMethod { \ m0cfa -- -<method: object>- m0cfa } \ W32F Class --- 1625,1629 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! also hidden : GetMethod { \ m0cfa -- -<method: object>- m0cfa } \ W32F Class Index: words.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/words.f,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** words.f 21 May 2007 08:38:46 -0000 1.4 --- words.f 22 May 2007 07:36:20 -0000 1.5 *************** *** 43,50 **** MAXSTRING LocalAlloc: words-pad$ voc dup voc#threads to w#threads ! dup voc>vcfa ?isclass not \ don't look through classes if dup here 500 + w#threads cells move \ copy vocabulary up ! voc>vcfa vocsave ! begin here 500 + w#threads largest dup while dup l>name nfa-count 2dup "CLIP" words-pad$ place --- 43,50 ---- MAXSTRING LocalAlloc: words-pad$ voc dup voc#threads to w#threads ! dup voc>vxt@ ?isclass not \ don't look through classes if dup here 500 + w#threads cells move \ copy vocabulary up ! voc>vxt@ vocsave ! begin here 500 + w#threads largest dup while dup l>name nfa-count 2dup "CLIP" words-pad$ place *************** *** 107,113 **** cr VOC-LINK @ BEGIN DUP VLINK>VOC ! dup voc>vcfa ?isclass not \ don't look through classes ! IF dup voc>vcfa .NAME 18 #tab dup voc#threads dup>r 4 .r 0 to words-cnt --- 107,113 ---- cr VOC-LINK @ BEGIN DUP VLINK>VOC ! dup voc>vxt@ ?isclass not \ don't look through classes ! IF dup voc>vxt@ .NAME 18 #tab dup voc#threads dup>r 4 .r 0 to words-cnt *************** *** 201,205 **** begin dup vlink>voc dup voc#threads >r ! dup voc>vcfa @ dup doClass = \ don't look through classes swap do|Class = or 0= \ don't look through classes --- 201,205 ---- begin dup vlink>voc dup voc#threads >r ! dup voc>vxt@ @ dup doClass = \ don't look through classes swap do|Class = or 0= \ don't look through classes Index: CONTROL.F =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/CONTROL.F,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CONTROL.F 3 May 2007 09:10:51 -0000 1.1 --- CONTROL.F 22 May 2007 07:36:20 -0000 1.2 *************** *** 1,4 **** --- 1,37 ---- \ $Id$ + \ + \ Copyright [c] 2007 by Alex McDonald (alex at rivadpm dot com) + \ Dirk Busch (dirk at win32forth.org) + \ George Hubert (georgeahubert at yahoo.co.uk) + \ Jos V D Ven + \ Tom Dixon + \ The original Win32Forth system was public domain; this file is GPL. + \ Although the basic structure of Win32Forth and many of its capabilities + \ are employed in this code, the subclass routine has been completely rewritten. + \ The original code was originally developed by Tom Zimmer, Andrew McKewan + \ with minor contributions by others and placed in the public domain. I + \ acknowledge their copyrighted contributions and the structure and some + \ of the methods and concepts employed in this further development. + \ + \ The assembler is Copyright [c] 1994, 1995, by Jim Schneider and is issued + \ under the LGPL. + \ + \ This program is free software; you can redistribute it and/or modify it + \ under the terms of the GNU General Public License as published by the + \ Free Software Foundation; either version 2 of the License, or <at your + \ option> any later version. + \ + \ This program is distributed in the hope that it will be useful, but + \ WITHOUT ANY WARRANTY; without even the implied warranty of + \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + \ General Public License for more details. + \ + \ You should have received a copy of the GNU General Public License along + \ with this program; if not, write to the Free Software Foundation, Inc., + \ 675 Mass Ave, Cambridge, MA 02139, USA. + \ + \ ------------------------------------------------------------------------ + \ *D doc\classes\ \ *! Control *************** *** 13,53 **** DEFER SUBCLASS-WNDPROC :NONAME 4DROP 0 ; IS SUBCLASS-WNDPROC - \ ------------------------------------------------------------------------ - \ ----------------- ITC Only --------------------------------------------- - \ ------------------------------------------------------------------------ - - \ NCODE SUBCLASS-RETURN - \ CODE-HERE CELL+ CODE-, \ itc - \ mov eax, ebx \ C return value - \ mov esp, ebp \ restore stack - \ pop ebp \ restore registers - \ pop ebx - \ pop edi - \ pop esi - \ ret # 4 CELLS \ return & discard params - \ c; - - \ CFA-CODE SUBCLASS-ENTRY ( lparam wparam message hwnd -- result ) - \ push esi \ save registers - \ push edi - \ push ebx - \ push ebp - \ mov ebx, ecx \ address of object - \ mov ebp, esp \ make forth stacks - \ sub esp, # 4000 \ room for return stack - \ push 5 CELLS [ebp] \ hwnd - \ push 6 CELLS [ebp] \ message - \ push 7 CELLS [ebp] \ wparam - \ push 8 CELLS [ebp] \ lparam - \ xor edi, edi \ EDI is constant 0 - \ mov edx, fs: 0x14 \ edx is now ptr from TIB pvArbitrary - \ mov esi, # ' SUBCLASS-RETURN - \ mov eax, # ' SUBCLASS-WNDPROC - \ exec c; - - \ ------------------------------------------------------------------------ - \ -------------------------- STC Only ------------------------------------ - \ ------------------------------------------------------------------------ - CODE SUBCLASS-ENTRY ( lparam wparam message hwnd -- result ) push esi \ save registers --- 46,49 ---- *************** *** 75,79 **** pop esi ret # 4 CELLS \ return & discard params ! c; : CallWindowProc ( hwnd msg wparam lparam wndproc -- result ) --- 71,75 ---- pop esi ret # 4 CELLS \ return & discard params ! next c; : CallWindowProc ( hwnd msg wparam lparam wndproc -- result ) *************** *** 92,97 **** create &ButtonRect 4 cells allot \ temp rectangle for current info msg &ButtonRect 4 cells erase ! create &CursorPoint 2 cells allot ! &CursorPoint 2 cells erase 255 constant max-binfo \ longest info message allowed --- 88,92 ---- create &ButtonRect 4 cells allot \ temp rectangle for current info msg &ButtonRect 4 cells erase ! 255 constant max-binfo \ longest info message allowed *************** *** 106,115 **** FALSE value mouse-is-down? - : get-mouse-xy { hWnd -- x y } - &CursorPoint Call GetCursorPos drop - &CursorPoint hWnd Call ScreenToClient drop - &CursorPoint @ - &CursorPoint cell+ @ ; - : in-button? { x y hWnd -- f1 } &ButtonRect hWnd Call GetClientRect drop --- 101,104 ---- Index: GENERIC.F =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/GENERIC.F,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** GENERIC.F 1 May 2007 07:41:55 -0000 1.2 --- GENERIC.F 22 May 2007 07:36:20 -0000 1.3 *************** *** 54,57 **** --- 54,66 ---- ' TempRect Alias wRect + \ Moved from control.f since it's also used by descendants of the class window. + \ Made thread-safe gah Sunday, May 20 2007 + : get-mouse-xy ( hWnd -- x y) \ W32F + \ *G Return the co-ordinates of the mouse pointer in window, hWnd. + { hWnd | CursorPoint.x CursorPoint.y -- x y } + &of CursorPoint.x Call GetCursorPos drop + &of CursorPoint.x hWnd Call ScreenToClient drop + CursorPoint.x CursorPoint.y ; + in-system |
From: George H. <geo...@us...> - 2007-05-21 14:17:05
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv28784/win32forth-stc/src Modified Files: Class.f Log Message: gah:removed setting of xt pointer in ;object Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/Class.f,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Class.f 21 May 2007 13:51:45 -0000 1.10 --- Class.f 21 May 2007 14:16:59 -0000 1.11 *************** *** 678,684 **** : ;Object ( -- ) Obj-CLASS 0= abort" Objects must start with :Object" ! ^class (;ClObj) Obj-CLASS (Obj-Build) ! LatestXT @ swap voc>vxt ! Obj-LOADLINE last @ n>vfa w! ; --- 678,684 ---- : ;Object ( -- ) Obj-CLASS 0= abort" Objects must start with :Object" ! (;ClObj) Obj-CLASS (Obj-Build) ! 0 to Obj-Class Obj-LOADLINE last @ n>vfa w! ; |
From: George H. <geo...@us...> - 2007-05-21 13:51:49
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv18936/win32forth-stc/src Modified Files: Class.f primutil.f Log Message: gah:modified inherit to set xt pointer in wordlist structure of :object definitions to the xt of [NoNameClass], a dummy word (whose type is set to tcla) so ?isclass works correctly with the class of :objects, and reverted to old ?isclass Index: primutil.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/primutil.f,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** primutil.f 20 May 2007 11:05:27 -0000 1.34 --- primutil.f 21 May 2007 13:51:45 -0000 1.35 *************** *** 157,163 **** : ?isClass ( cfa -- f ) >name n>tfa c@ dup tCla = ! over t|Cl = or ! swap tobj = or ! ; defer \n->crlf --- 157,161 ---- : ?isClass ( cfa -- f ) >name n>tfa c@ dup tCla = ! swap t|Cl = or ; defer \n->crlf Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/Class.f,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Class.f 21 May 2007 08:38:46 -0000 1.9 --- Class.f 21 May 2007 13:51:45 -0000 1.10 *************** *** 532,535 **** --- 532,537 ---- internal + : [NoNameClass] ; tcla tfa! \ Fake header for :object classes + \ Build a class header with its superclass pointer : inherit ( pfa -- ) *************** *** 544,548 **** ^Class ^Self iclass ! \ store my class in SELF ^Class XFA dup @ 0max swap ! \ inherit indexing ! LatestXT @ ^class voc>vxt ! \ Set xt also ^class context ! definitions \ add to search order obj-class 0= if reveal then ; --- 546,551 ---- ^Class ^Self iclass ! \ store my class in SELF ^Class XFA dup @ 0max swap ! \ inherit indexing ! obj-class if ['] [NoNameClass] else LatestXT @ then ! ^class voc>vxt ! \ Set xt also ^class context ! definitions \ add to search order obj-class 0= if reveal then ; |
From: George H. <geo...@us...> - 2007-05-21 09:57:31
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv23692/win32forth/src Modified Files: CONTROL.F Class.f GENERIC.F WORDS.F Log Message: gah:moved MethodExecute and MethodCatch to Forth vocabulary , moved get-mouse-xy into generic.f (to reduce dependancies) and made thread safe.Fixed bug in constants when wincon.dll isn't available Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** Class.f 1 May 2007 07:32:55 -0000 1.30 --- Class.f 21 May 2007 09:57:26 -0000 1.31 *************** *** 1206,1216 **** IF idxBase 2 - w@ ( #elems ) * + CELL+ THEN ; - \ -------------------------------------------------------------------- - \ ------------- Support for windows procedures etc ------------------- - \ -------------------------------------------------------------------- - - ' execute alias Methodexecute - ' catch alias Methodcatch - \ ==================================================================== \ Support for 2 dimensional arrays --- 1206,1209 ---- *************** *** 1261,1264 **** --- 1254,1263 ---- ~: [ dup>r ] r> cell- Free Abort" Disposing Object failed!" ; + \ -------------------------------------------------------------------- + \ ------------- Support for windows procedures etc ------------------- + \ -------------------------------------------------------------------- + + ' execute alias Methodexecute + ' catch alias Methodcatch \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Index: WORDS.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/WORDS.F,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** WORDS.F 29 Aug 2005 15:56:28 -0000 1.6 --- WORDS.F 21 May 2007 09:57:26 -0000 1.7 *************** *** 94,99 **** : count-constants ( -- n1 ) \ count the constants available to system constant-tot 0= \ only count if not counted... ! if WinConPtr proc>cfa @ dodefer = \ Leave if 'wcFindWin32Constant' ! if 0 EXIT then \ hasn't already been resolved &.WinConstantCount 0 here CALL wcEnumWin32Constants DROP then constant-tot ; --- 94,99 ---- : count-constants ( -- n1 ) \ count the constants available to system constant-tot 0= \ only count if not counted... ! if WinConlib load-dll 0= \ Leave if wincon.dll ! if 0 EXIT then \ isn't present &.WinConstantCount 0 here CALL wcEnumWin32Constants DROP then constant-tot ; *************** *** 140,145 **** cr 0 to constant-cnt ! WinConPtr proc>cfa @ dodefer = \ Leave if 'wcFindWin32Constant' ! if ." WINCON.DLL missing" EXIT then \ hasn't already been resolved cr ." ----------- Windows Constants " --- 140,145 ---- cr 0 to constant-cnt ! WinConlib load-dll 0= \ Leave if wincon.dll ! if ." WINCON.DLL missing" EXIT then \ isn't present cr ." ----------- Windows Constants " *************** *** 206,210 **** repeat 2drop else drop ! then r>drop @ dup 0= until drop ; --- 206,210 ---- repeat 2drop else drop ! then rdrop @ dup 0= until drop ; Index: CONTROL.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/CONTROL.F,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CONTROL.F 9 May 2007 07:46:40 -0000 1.9 --- CONTROL.F 21 May 2007 09:57:26 -0000 1.10 *************** *** 57,62 **** create &ButtonRect 4 cells allot \ temp rectangle for current info msg &ButtonRect 4 cells erase - create &CursorPoint 2 cells allot - &CursorPoint 2 cells erase 255 constant max-binfo \ longest info message allowed --- 57,60 ---- *************** *** 71,80 **** FALSE value mouse-is-down? - : get-mouse-xy { hWnd -- x y } - &CursorPoint Call GetCursorPos drop - &CursorPoint hWnd Call ScreenToClient drop - &CursorPoint @ - &CursorPoint cell+ @ ; - : in-button? { x y hWnd -- f1 } &ButtonRect hWnd Call GetClientRect drop --- 69,72 ---- Index: GENERIC.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/GENERIC.F,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** GENERIC.F 16 Apr 2007 08:29:06 -0000 1.15 --- GENERIC.F 21 May 2007 09:57:26 -0000 1.16 *************** *** 54,57 **** --- 54,66 ---- ' TempRect Alias wRect + \ Moved from control.f since it's also used by descendants of the class window. + \ Made thread-safe gah Sunday, May 20 2007 + : get-mouse-xy ( hWnd -- x y) \ W32F + \ *G Return the co-ordinates of the mouse pointer in window, hWnd. + { hWnd | CursorPoint.x CursorPoint.y -- x y } + &of CursorPoint.x Call GetCursorPos drop + &of CursorPoint.x hWnd Call ScreenToClient drop + CursorPoint.x CursorPoint.y ; + in-system |
From: George H. <geo...@us...> - 2007-05-21 09:57:30
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv23692/win32forth/src/lib Modified Files: TrayWindow.f Log Message: gah:moved MethodExecute and MethodCatch to Forth vocabulary , moved get-mouse-xy into generic.f (to reduce dependancies) and made thread safe.Fixed bug in constants when wincon.dll isn't available Index: TrayWindow.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/TrayWindow.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TrayWindow.f 15 Jan 2006 09:25:50 -0000 1.1 --- TrayWindow.f 21 May 2007 09:57:26 -0000 1.2 *************** *** 15,18 **** --- 15,20 ---- cr .( Loading TrayWindow class...) + Require Window.f + anew -TrayWindow.f *************** *** 47,51 **** :M DefaultIcon: ( -- hIcon ) ! \ *G Get the handle of the icon whitch should be added to the traybar. DefaultIcon: super ;M --- 49,53 ---- :M DefaultIcon: ( -- hIcon ) ! \ *G Get the handle of the icon which should be added to the traybar. DefaultIcon: super ;M |
From: George H. <geo...@us...> - 2007-05-21 08:38:50
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv26852/win32forth-stc/src Modified Files: Class.f numconv.f primhash.f words.f Log Message: gah:increased no of method lists to 4, moved MethodExecute and MethodCatch to Forth vocabulary and enabled constants (after fixing bug). Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/Class.f,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Class.f 20 May 2007 15:09:13 -0000 1.8 --- Class.f 21 May 2007 08:38:46 -0000 1.9 *************** *** 1363,1383 **** IF idxBase 2 - w@ ( #elems ) * + CELL+ THEN ; - \ -------------------------------------------------------------------- - \ ------------- Support for windows procedures etc ------------------- - \ -------------------------------------------------------------------- - - : MethodExecute ( i*x ^obj methodXT -- j*x ) - \ *G Version of execute for objects and methods. - (comp-only) - compilation> drop postpone swap postpone PushOP postpone OP postpone ! - postpone execute postpone PopOP ; - - : MethodCatch ( i*x ^obj methodXT -- j*x 0 | i*x ^obj n ) - \ *G Version of catch for objects and methods. - (comp-only) - compilation> drop postpone swap postpone PushOP postpone OP postpone ! - postpone catch postpone dup postpone if postpone self postpone swap - postpone then postpone PopOP ; - \ ==================================================================== \ Support for 2 dimensional arrays --- 1363,1366 ---- *************** *** 1427,1430 **** --- 1410,1424 ---- ~: [ dup>r ] r> cell- Free Abort" Disposing Object failed!" ; + \ -------------------------------------------------------------------- + \ ------------- Support for windows procedures etc ------------------- + \ -------------------------------------------------------------------- + + : MethodExecute ( i*x ^obj methodXT -- j*x ) + \ *G Version of execute for objects and methods. + swap PushOP OP ! execute PopOP ; + + : MethodCatch ( i*x ^obj methodXT -- j*x 0 | i*x ^obj n ) + \ *G Version of catch for objects and methods. + swap PushOP OP ! catch -if self swap then PopOP ; \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Index: words.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/words.f,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** words.f 20 May 2007 15:53:23 -0000 1.3 --- words.f 21 May 2007 08:38:46 -0000 1.4 *************** *** 94,103 **** then nuf? 0= ; ! (( : count-constants ( -- n1 ) \ count the constants available to system constant-tot 0= \ only count if not counted... ! if WinConPtr proc>cfa @ dodefer = \ Leave if 'wcFindWin32Constant' ! if 0 EXIT then \ hasn't already been resolved ! &.WinConstantCount 0 here CALL wcEnumWin32Constants DROP ! then constant-tot ; )) EXTERNAL --- 94,103 ---- then nuf? 0= ; ! : count-constants ( -- n1 ) \ count the constants available to system constant-tot 0= \ only count if not counted... ! if WinConlib load-dll 0= \ Leave if wincon.dll ! if 0 EXIT then \ isn't present ! ['] .WinConstantCount 0 here CALL wcEnumWin32Constants DROP ! then constant-tot ; EXTERNAL *************** *** 130,138 **** ( cr count-constants 6 u,.r ." Windows Constants available") ; ! (( : CONSTANTS ( -<optional_name>- ) cr 0 to constant-cnt ! WinConPtr proc>cfa @ dodefer = \ Leave if 'wcFindWin32Constant' ! if ." WINCON.DLL missing" EXIT then \ hasn't already been resolved cr ." ----------- Windows Constants " --- 130,138 ---- ( cr count-constants 6 u,.r ." Windows Constants available") ; ! : CONSTANTS ( -<optional_name>- ) cr 0 to constant-cnt ! WinConlib load-dll 0= \ Leave if wincon.dll ! if ." WINCON.DLL missing" EXIT then \ isn't present cr ." ----------- Windows Constants " *************** *** 141,149 **** bl word ?uppercase count words-pocket place bl word ?uppercase drop ! &.WinConstant 0 here CALL wcEnumWin32Constants DROP cr horizontal-line cr ." Displayed " constant-cnt . ." of the " ! count-constants . ." Windows Constants in the system." ; )) : with-address ( -- ) --- 141,149 ---- bl word ?uppercase count words-pocket place bl word ?uppercase drop ! ['] .WinConstant 0 here CALL wcEnumWin32Constants DROP cr horizontal-line cr ." Displayed " constant-cnt . ." of the " ! count-constants . ." Windows Constants in the system." ; : with-address ( -- ) Index: primhash.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/primhash.f,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** primhash.f 24 Apr 2007 09:00:16 -0000 1.3 --- primhash.f 21 May 2007 08:38:46 -0000 1.4 *************** *** 16,19 **** --- 16,21 ---- \ Dirk Busch (dirk at win32forth.org) \ George Hubert (georgeahubert at yahoo.co.uk) + \ Jos V d Ven + \ Tom Dixon \ The original Win32Forth system was public domain; this kernel (and \ currently the kernel alone) is GPL. Although the basic structure of *************** *** 54,59 **** 7 #vocabulary classes ! sys-here ' classes >body - \ voc-pfa-size ! 2 dup 4 + cells sys-reserve \ extra for a class swap constant voc-pfa-size --- 56,61 ---- 7 #vocabulary classes ! sys-here ' classes >body - \ voc-pfa-size ! 4 dup \ Number of method lists; used below 4 + cells sys-reserve \ extra for a class swap constant voc-pfa-size Index: numconv.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/numconv.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** numconv.f 21 Sep 2006 16:26:33 -0000 1.1 --- numconv.f 21 May 2007 08:38:46 -0000 1.2 *************** *** 7,17 **** arm 15/08/2005 22:56:45 First version 0.1 STC based kernel - ! ------------------------- End Change Block ----------------------------- ! Experimental: a fully optimising, STC based, ANS Forth compliant kernel ! Copyright [c] 2005 by Alex McDonald (alex at rivadpm dot com) Tom Zimmer --- 7,17 ---- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ! ! ------------------------- End Change Block ----------------------------- ! Experimental: a fully optimising, STC based, ANS Forth compliant kernel ! Copyright [c] 2005 by Alex McDonald (alex at rivadpm dot com) Tom Zimmer *************** *** 21,34 **** Free Software Foundation; either version 2 of the License, or <at your option> any later version. ! This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ! ------------------------------------------------------------------------ --- 21,34 ---- Free Software Foundation; either version 2 of the License, or <at your option> any later version. ! This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ! ------------------------------------------------------------------------ *************** *** 54,58 **** \ has been detected in each routine separately. ! \ Floating point numbers are returned in the floating point stack; there is \ no return value, and the variable FLOAT? is set. See FLOAT.F for details; \ the code is in that file, not here. NOTE - even floating point routines must --- 54,58 ---- \ has been detected in each routine separately. ! \ Floating point numbers are returned in the floating point stack; there is \ no return value, and the variable FLOAT? is set. See FLOAT.F for details; \ the code is in that file, not here. NOTE - even floating point routines must *************** *** 198,202 **** library wincon.dll ! \ winlib-last @ constant WinConLib 3 proc wcFindWin32Constant \ winproc-last @ constant WinConPtr \ for **WORDS.F** --- 198,202 ---- library wincon.dll ! winlib-last @ constant WinConLib 3 proc wcFindWin32Constant \ winproc-last @ constant WinConPtr \ for **WORDS.F** *************** *** 262,266 **** : number? ( addr len -- d f ) \ to support >float num-init ! ['] dotted-number? catch 0= double? 0= and \ october 1st, 1996 - 10:51 tjz & am ; \ double exponent not allowed --- 262,266 ---- : number? ( addr len -- d f ) \ to support >float num-init ! ['] dotted-number? catch 0= double? 0= and \ october 1st, 1996 - 10:51 tjz & am ; \ double exponent not allowed |
From: Jos v.d.V. <jo...@us...> - 2007-05-20 15:53:26
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv26152 Modified Files: Utils.f words.f Log Message: Jos: Removed the duplicate .loaded Index: Utils.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/Utils.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Utils.f 20 May 2007 15:34:47 -0000 1.6 --- Utils.f 20 May 2007 15:53:23 -0000 1.7 *************** *** 76,93 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ - \ 7 Display the files loaded into the system - \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ - (( - also hidden - - : .loaded ( -- ) - also files - screendelay 0 to screendelay - \ false to with-tabs? - _words - previous to screendelay ; - previous )) - - \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ display a Message Box \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ --- 76,79 ---- Index: words.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/words.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** words.f 20 May 2007 15:34:47 -0000 1.2 --- words.f 20 May 2007 15:53:23 -0000 1.3 *************** *** 182,185 **** --- 182,189 ---- EXTERNAL + \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + \ Display the files loaded into the system + \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + : .loaded ( -- ) also files |
From: Jos v.d.V. <jo...@us...> - 2007-05-20 15:42:53
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv21592 Modified Files: extend.f Log Message: Jos: Added Dthread to prevent a wrong order in .loaded Index: extend.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/extend.f,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** extend.f 19 May 2007 10:12:28 -0000 1.21 --- extend.f 20 May 2007 15:42:50 -0000 1.22 *************** *** 39,42 **** --- 39,43 ---- FLOAD src\console\forthdlg.f fload src\xfiledlg.f \ xcall replacements for open dialogs + sys-FLOAD src\Dthread.f \ Hash Thread Display. sys-FLOAD src\words.f |