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: CamilleForth <cam...@us...> - 2008-12-23 21:09:18
|
Update of /cvsroot/win32forth/win32forth/Help In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv1910 Added Files: HelpDexH.f Log Message: moved helpdexh to help dir cdo 24 dec 2008 --- NEW FILE: HelpDexH.f --- \ HelpDexH.f \ *! dexh-Helpdexh \ *T Source documentation Extractor, HTML output \ *Q Version 3 \ ** Primary contributor: Brad Eckert br...@SP...\n \ ** Modified for use in Win32Forth by George Hubert and Dirk Busch\n \ ** May 2008: modified for new Help + HTML4+CSS style sheets by Camille Doiteau ( *Q Abstract ) ( ** Dexh is a simple tool allowing to generate an html help page directly from) ( ** a source file, using its comments, slightly modified. It is inspired by ) ( ** MPE's DOCGEN. DexH can also be used to write articles about Forth ) ( ** featuring a mixture of documentation and source code. DexH is a standalone) ( ** program that processes a Forth source file. ) \ *S How to use dexh ? \ *P Once the proper dexh commands are set in the comments of a source file, the \ ** following command creates the html file from the source file : \n \ ** \tDEX input_filename\d\n \ ** or\n \ ** \tDEXF\d (launches a file dialog to select the file to process) \ *P The output file will be named input_filename\b.htm\d and will reside in the \ ** same directory. You can move or rename it if needed.\n \ *P With little effort, more sophisticated outputs can be obtained to suit your \ ** needs (eg: several source files output to one html file) : check the file \ ** Help\HelpCreateDexhDocs.f for an example. \ *P The output is crude html code. Your html browser will use default settings \ ** to display it. However, dexh invoques a CSS style sheet in the html header it \ ** creates. Its name is "style.css". You can enhance the display by providing this \ ** style sheet. You will find an example in help\html\style.css. \ *S How to write comments that dexh will understand ? \ *P Dexh uses "beginning-of-line commands" to describe how to display the comment \ ** line and "in-line-commands" to add some more style. \ *P The HelpDexh.f source itself contains many examples of use of theese commands. \ *N "beginning-of-line commands" \ *P Commands are embedded within comments. You can use either of the following \ ** formats, starting at the first column. \n \ ** \t( *? ... ) \d where *? is the command (followed by at least 1 space), or, simpler,\n \ ** \t\\ *? ...\d \n \ *P Available commands are : \ *L \ *| Command *? | Effect | \ *| ** | continuation of P, E, G or B | \ *| *T | Title (main title, at top of page) | \ *| *Q | "Quotation" or "Abstract" title (italics) | \ *| *S | Section (title) | \ *| *N | Sub-section (sub-title) | \ *| *A | Sub-Sub-section (sub-sub-title) | \ *| *P | Paragraph | \ *| *E | Paragraph which is a code example | \ *| *+ | Include folowing source code as text | \ *| *- | Turn off source code inclusion | \ *| *B | Bullet entry | \ *| *L | Table entries follow (**) | \ *| *G | Glossary entry for the previous line | \ *| *R | raw LaTeX | \ *| *W | raw HTML | \ *P (**) Next lines must start with command *| and each table field \ ** must be separated by | (vertical bar) and end in | \ *P The commands *! *> *D and *Z (previously provided to handle filenames, \ ** directories, etc) are no longer supported. They are harmless if \ ** encoutered in a source. Theese command ids should not be re-used however. \ ** The effect of command *A has been slightly modified to be only a level 4 title. anew -DexH.f \ *P Some files may use very long lines. Dexh handles lines to as long as 2000 chars. \ ** You can allocate buffers for longer lines by changing the following line: ( *+ ) 2000 CHARS CONSTANT max$ ( *- ) CREATE inbuf max$ 2 CELLS + ALLOT \ current line CREATE prevline max$ 2 CELLS + ALLOT \ previous line CREATE XPAD max$ 2 CELLS + ALLOT \ temporary \ HTML needs some canned boilerplate. This is created by ,| since HTML \ doesn't use | characters. : (,$) ( a len -- ) DUP C, 0 ?DO COUNT C, LOOP DROP ; : ,| ( <text> -- ) [CHAR] | WORD COUNT -TRAILING (,$) ; CREATE DexHTMLheader ,| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" | ,| "http://www.w3.org/TR/html4/strict.dtd"> | ,| <html> | ,| <head> | ,| <meta name="GENERATOR" content="DexH v03" /> | ,| <title> | 0 C, DexHTMLheader value HTMLheader CREATE DexHTMLheaderA ,| </title> | ,| <link rel="stylesheet" type="text/css" href="style.css"> | ,| </head> | ,| <body> | 0 C, DexHTMLheaderA value HTMLheaderA CREATE DexHTMLtrailer ,| </body></html> | 0 C, DexHTMLtrailer value HTMLtrailer 0 VALUE outfile \ The current output file 0 VALUE infile 0 VALUE echoing 0 value plain \ Echo the code as output 0 VALUE mode 0 VALUE TableHead \ True for the first line of a table ( *P All output is via OUT and OUTLN, which can be sent to the screen for ) ( ** debugging purposes. ) ( *+ ) 0 VALUE testing \ screen is for testing ( *- ) : werr ( n -- ) ABORT" Error writing file" ; : out ( a len -- ) testing IF TYPE ELSE outfile WRITE-FILE werr THEN ; : outln ( a len -- ) testing IF TYPE CR ELSE outfile WRITE-LINE werr THEN ; : boiler ( addr -- ) BEGIN COUNT DUP WHILE 2DUP + >R outln R> REPEAT 2DROP ; \ *N "in-line-commands" \ *P Some characters (escaped by \) are provided that dexh will replace by html tags. For \ ** instance the sequence \\tWORDS\\d will generate <code>WORDS</code>, and thus display \ ** WORDS in a typewritter style like \tWORDS\d (Theese commands cannot be imbricated \ ** however). \ *P Examples: \ *P "ax\\^2\\d + bx + w\\_0\\d = 0" will display "ax\^2\d + bx + w\_0\d = 0"\n \ ** "Try \\bbold\d, \\iitalic \\dand \\ttypewriter.\\d" will display "Try \bbold\d, \iitalic \dand \ttypewriter\d." \ *L \ *| Command *? | Effect | \ *| \\d | Ends italic, superscript, etc. | \ *| \\i | Italics | \ *| \\b | Bold | \ *| \\t | Typewriter | \ *| \\^ | Superscript | \ *| \\_ | Subscript | \ *| \\n | Line break | \ *| \\r | Horizontal rule | \ *| \\p | Page break | \ *| \\\\ | \ character | \ *P During htm file creation, some characters are automatically converted to html \ ** sequences. They are < (<) > (>) " (") and © (©) VARIABLE bltally \ counts runs of blanks VARIABLE thisfont \ current font attributes VARIABLE escape \ escape sequence in progress? VARIABLE captive \ ESC sequence not allowed : no-escape ( -- ) S" \" out 0 escape ! ; : new-font ( n -- ) \ switch to a new font thisfont @ SWAP thisfont ! CASE [CHAR] i OF S" </i>" out ENDOF [CHAR] b OF S" </b>" out ENDOF [CHAR] t OF S" </code>" out ENDOF [CHAR] ^ OF S" </sup>" out ENDOF [CHAR] _ OF S" </sub>" out ENDOF ENDCASE ; : outh ( addr len -- ) \ HTMLized text output 999 bltally ! BOUNDS ?DO i C@ escape @ IF CASE [CHAR] \ OF S" \" out ENDOF [CHAR] n OF S" <br />" out ENDOF [CHAR] r OF s" <hr />" out ENDOF [CHAR] i OF i C@ new-font S" <i>" out ENDOF [CHAR] b OF i C@ new-font S" <b>" out ENDOF [CHAR] t OF i C@ new-font S" <code>" out ENDOF [CHAR] ^ OF i C@ new-font S" <sup>" out ENDOF [CHAR] _ OF i C@ new-font S" <sub>" out ENDOF [CHAR] d OF 0 new-font ENDOF no-escape I 1 out ENDCASE 0 escape ! ELSE CASE [CHAR] \ OF captive @ IF no-escape ELSE 1 escape ! THEN ENDOF [CHAR] & OF S" &" out ENDOF [CHAR] < OF S" <" out ENDOF [CHAR] > OF S" >" out ENDOF [CHAR] " OF S" "" out ENDOF [CHAR] © OF S" ©" out ENDOF BL OF bltally @ IF S" " ELSE S" " THEN out 1 bltally +! ENDOF I 1 out 0 bltally ! ENDCASE THEN LOOP escape @ IF no-escape THEN \ trailing \ S" " outln ; \ : lastchar ( a n -- a n c ) \ 2DUP 1- CHARS + C@ ; : line ( -- a len ) inbuf lcount 5 /STRING \ remove ( ** and ) or \ ** inbuf cell+ c@ [CHAR] ( = IF lastchar [CHAR] ) = IF 1- THEN THEN -trailing ; : _parse ( $line char -- $line' $ ) >R 2DUP R@ SKIP R> SCAN BL SCAN \ parse out a substring 2SWAP 2 PICK - ; : table| ( -- ) \ add line to a table line begin [CHAR] | _parse BL skip 1- 0 max -trailing dup if TableHead if S" <th>" out outh S" </th>" outln else S" <td>" out outh S" </td>" outln then else 2drop 2drop false to TableHead EXIT then again ; : end ( -- ) \ insert end tags mode CASE [CHAR] P OF s" </p>" out ENDOF [CHAR] E OF s" </pre>" out ENDOF [CHAR] B OF s" </li></ul>" out ENDOF [CHAR] L OF s" </table>" out ENDOF ENDCASE BL to mode ; : command ( c -- ) plain if s" </pre>" out 0 to plain then \ terminate plain text CASE [CHAR] * OF line outh ENDOF [CHAR] T OF end s" <h1>" out line outh s" </h1>" out ENDOF [CHAR] S OF end s" <h2>" out line outh s" </h2>" out ENDOF [CHAR] N OF end s" <h3>" out line outh s" </h3>" out ENDOF [CHAR] A OF end s" <h4>" out line outh s" </h4><p>" out [CHAR] P to mode ENDOF [CHAR] Q OF end s" <h3><i>" out line outh s" </i></h3><p>" out [CHAR] P to mode ENDOF [CHAR] P OF end s" <p>" out line outh [CHAR] P to mode ENDOF [CHAR] E OF end s" <pre>" out line outh [CHAR] E to mode ENDOF [CHAR] B OF mode [CHAR] B <> if end s" <ul><li>" else s" </li><li>" then out line outh [CHAR] B to mode ENDOF [CHAR] G OF end s" <p><b><code>" out prevline lcount outh s" </code></b><br>" out line outh [CHAR] P to mode ENDOF [CHAR] W OF end line outln ENDOF [CHAR] + OF end s" <pre>" out 1 to plain 1 to echoing ENDOF [CHAR] - OF end 0 to echoing ENDOF [CHAR] L OF end s" <table>" out 1 to TableHead [CHAR] L TO mode ENDOF [CHAR] | OF S" <tr>" out table| S" </tr>" outln ENDOF ENDCASE ; : process-line ( -- ) inbuf @ 3 > if S" ( *" inbuf cell+ over compare 0= S" \ *" inbuf cell+ over compare 0= or inbuf @ 4 > if inbuf cell+ 4 + c@ bl = and then else 0 then if 0 captive ! inbuf cell+ 3 chars + c@ command \ command line else end echoing \ not a command line if plain 0= if 1 to plain s" <pre>" out then 1 captive ! inbuf LCOUNT outh then then inbuf prevline over @ cell+ move ; \ save line as prevline ( *W <hr> ) ( *S Glossary ) : ((dexh)) ( -- ) \ input and output files are opened and file-position set 0 to testing \ output to file 0 to echoing 0 to plain 0 to mode \ reset modes 0 escape ! 0 to TableHead \ init table header flag prevline max$ BLANK begin XPAD max$ infile read-line \ read line inbuf max$ BL FILL \ convert tabs to spaces abort" Error reading file" >r >r 0 XPAD R> BOUNDS \ idx . . ?do i c@ 9 = if 3 RSHIFT 1+ 3 LSHIFT \ tab else i c@ over CHARS CELL+ inbuf + C! 1+ dup max$ = if cr ." Input line too long" then then loop r> \ len eof while inbuf ! process-line \ process line \ ??? should stop if \s encountered... repeat drop end HTMLtrailer boiler ; CREATE $infile 250 allot \ input source file name CREATE $outfile 250 allot \ output htm file name : right$ ( addr cnt char -- addr' cnt' ) \ Example: s" c:\dir\file.ext" ascii \ right$ gives "file.ext" \ Example: s" aaaa.ext" ascii \ right$ gives "aaaa.ext" >r swap over + over r> -scan ?dup if rot swap - 1- swap 1+ swap else swap then ; : (dexh) ( -- ) \ filenames supposed set in $infile and $outfile $infile count r/o OPEN-FILE abort" Missing input file" to infile $outfile count w/o CREATE-FILE abort" Can't create file" to outfile HTMLheader boiler $infile count [char] \ right$ out \ title = source filename HTMLheaderA boiler ((dexh)) outfile CLOSE-FILE drop infile CLOSE-FILE drop ; : DEX ( <sourcefilename> -- ) \ *G Build dexh doc from source "filename[.f]" : create doc file "filename.htm" in \ ** same directory. BL parse 2dup lower \ handle filenames 2dup $infile place $infile +null 2dup [char] . right$ s" f" compare 0= if 2 - \ remove ".f" else s" .f" $infile +place then $outfile place s" .htm" $outfile +place $outfile +null (dexh) ; internal in-application FileOpenDialog DexFile "Dex Forth File" "Forth Files (*.f)|*.f|All Files (*.*)|*.*|" in-system external : DEXF ( -- ) \ *G Opens a file dialog to choose a source file and convert it to HTML. Output directory \ ** is same as input directory. Output filename is same filename with .htm extension. The \ ** source filename will be displayed in the title bar of Internet Explorer. conhndl start: DexFile count ?dup if 2dup $infile place $infile +null 2 - $outfile place s" .htm" $outfile +place $outfile +null (dexh) else drop then ; [defined] dexh [if] \in-system-ok ' DEXF is dexh \ link into w32f console menu [then] cr .( DexH -- Document Extractor loaded ) cr cr .( Usage: " DEX <filename> " to convert the file <filename> ) cr .( or " DEXF " to choose a file and convert it. ) module \ *W <hr>Document : Dexh-HelpDexH.htm -- 2006/11/08 -- win32forth team \ *Z \s |
From: CamilleForth <cam...@us...> - 2008-12-23 21:08:56
|
Update of /cvsroot/win32forth/win32forth/doc/OldDexh In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv1796 Removed Files: DexH-CreateDocs.f DexH-Glossary.f DexH.f W32fdexh.f Log Message: remove doc\olddexh cdo 24 DEC 2008 --- DexH-Glossary.f DELETED --- --- DexH-CreateDocs.f DELETED --- --- W32fdexh.f DELETED --- --- DexH.f DELETED --- |
From: Dirk B. <db...@us...> - 2008-12-23 10:50:54
|
Update of /cvsroot/win32forth/win32forth/Help In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv30495 Modified Files: HelpStruct.f Log Message: fixed redefinition of vcmpz Index: HelpStruct.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/Help/HelpStruct.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** HelpStruct.f 18 Aug 2008 21:41:20 -0000 1.2 --- HelpStruct.f 23 Dec 2008 10:50:49 -0000 1.3 *************** *** 497,501 **** 0 ?do 2dup w@ swap w! 2 2 d+ loop drop 0 swap w! ; ! : vcmpz abort" not yet implemented" ; \ now set the xts for defined basic data types --- 497,501 ---- 0 ?do 2dup w@ swap w! 2 2 d+ loop drop 0 swap w! ; ! : vcmpu abort" not yet implemented" ; \ now set the xts for defined basic data types *************** *** 506,510 **** ' string= >body bdxt ' v@s over ! ' v!s over cell+ ! ' vcmps over 2 cells + ! drop ' zstring= >body bdxt ' v@z over ! ' v!z over cell+ ! ' vcmpz over 2 cells + ! drop ! ' zunicode= >body bdxt ' v@u over ! ' v!z over cell+ ! ' vcmpz over 2 cells + ! drop : TypeExec ( ..manyparams.. xtrank -- ) --- 506,510 ---- ' string= >body bdxt ' v@s over ! ' v!s over cell+ ! ' vcmps over 2 cells + ! drop ' zstring= >body bdxt ' v@z over ! ' v!z over cell+ ! ' vcmpz over 2 cells + ! drop ! ' zunicode= >body bdxt ' v@u over ! ' v!z over cell+ ! ' vcmpu over 2 cells + ! drop : TypeExec ( ..manyparams.. xtrank -- ) |
From: Dirk B. <db...@us...> - 2008-12-23 10:48:11
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv30377 Modified Files: TabControl.f Log Message: - Changed the TabControl class to set the default gui font on start. - MultiLineTabControl class added Index: TabControl.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/TabControl.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TabControl.f 29 Jun 2008 05:12:40 -0000 1.6 --- TabControl.f 23 Dec 2008 10:48:04 -0000 1.7 *************** *** 86,93 **** lparam ;M - :M Start: ( Parent -- ) - \ *G Create the control. - to parent z" SysTabControl32" create-control ;M - \ You can cause the tabs to look like buttons by specifying the TCS_BUTTONS style. Tabs in this type of tab control \ should serve the same function as button controls; that is, clicking a tab should carry out a command instead of --- 86,89 ---- *************** *** 284,290 **** --- 280,308 ---- ;M + :M Start: ( Parent -- ) + \ *G Create the control. + to parent z" SysTabControl32" create-control + DEFAULT_GUI_FONT call GetStockObject SetFont: self + ;M + ;Class \ *G End of TabControl class + \ ------------------------------------------------------------------------ + \ *W <a name="MultiLineTabControl"></a> + \ *S MultiLineTabControl class + \ ------------------------------------------------------------------------ + :Class MultiLineTabControl <Super TabControl + \ *G Multiline Tab control. + \ ** Multiple rows of tabs are displayed, if necessary, so all tabs are visible at once. + + :M Start: ( Parent -- ) + TCS_MULTILINE AddStyle: self + Start: super + ;M + ;class + \ *G End of MultiLineTabControl class + + \ *P For a demo how to use the TabControl see: TabControlDemo.f |
From: CamilleForth <cam...@us...> - 2008-12-22 22:58:47
|
Update of /cvsroot/win32forth/win32forth/doc/OldDexh In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv10481 Added Files: DexH-CreateDocs.f DexH-Glossary.f DexH.f W32fdexh.f Log Message: re-added old dexh in doc directory cdo 23 dec 2008 --- NEW FILE: DexH-Glossary.f --- \ DexH-Glossary.f \ Creating a glossary for Win32Forth. create OutputFile$ ," doc\w32f-glossary.csv" \ **************************************************************************** \ write output file \ **************************************************************************** [UNDEFINED] OutputFileHandle [if] 0 value OutputFileHandle \ *G The handle of the output file for the glossary. [then] : output-close ( -- ) \ *G Close the output file for the glossary. OutputFileHandle ?dup if close-file drop 0 to OutputFileHandle then ; : OutputFile ( -- addr len ) \ *G Get name of output file for the glossary (including path). OutputFile$ count Prepend<home>\ ; : output-open ( -- f ) \ *G Open the output file for the glossary. \ ** If the file already exist the append mode for the file is set. output-close OutputFile r/w open-file swap to OutputFileHandle 0= if OutputFileHandle file-append 0= else OutputFile r/w create-file swap to OutputFileHandle 0= then ; : output-delete ( -- ) \ *G Delete the output file for the glossary. OutputFile delete-file drop ; : output-write ( addr len -- ) \ *G Write a string to the output-file. OutputFileHandle write-file drop ; : output-char ( char -- ) \ *G Write a char to the output-file. here c! here 1 output-write ; : (output-string) ( addr count -- ) \ *G Write a string to the output-file. \ ** A " char will be written as "" into the file. bounds ?do i c@ dup [char] " = if dup output-char then output-char loop ; : output-string ( addr count -- ) \ *G Write a string to the output-file. \ ** The string will be quoated with " . [char] " output-char (output-string) [char] " output-char ; : output-sep ( -- ) \ *G Write seperator to the output-file. [char] , output-char ; : output-cr ( -- ) \ *G Write CR to the output-file. 13 output-char 10 output-char ; : output-header ( -- ) \ *G Write the header line to the output-file. s" Name" output-string output-sep s" Stack" output-string output-sep s" Comment" output-string output-sep s" Type" output-string output-sep s" Class" output-string output-sep s" File" output-string output-cr ; : output-new ( -- ) \ *G Create a new empty glossary file. output-delete output-open if output-header output-close then ; \ **************************************************************************** \ parse input file \ **************************************************************************** -1 constant #invalid-definition-type #invalid-definition-type value definition-type : allot-erase ( n -- ) here over allot swap erase ; create $definition-name 1024 allot-erase create $definition-type 1024 allot-erase create $stack-comment 1024 allot-erase create $comment 1024 allot-erase create $class-name 1024 allot-erase false value InClass? : IsClass? ( -- f ) definition-type 8 = \ :class ? definition-type 9 = \ :object ? definition-type 14 = \ |class ? or or ; : IsCloseingClass? ( -- f ) definition-type 10 = \ ;class ? definition-type 11 = \ ;object ? or ; : set-class-name ( -- ) IsClass? if $definition-name lcount $class-name lplace else IsCloseingClass? if 0 $class-name ! then then ; : +word ( a1 n1 -- a2 n2 a3 n3 ) bl skip 2dup bl scan 2dup 2>r nip - 2r> 2swap ; : set-definition-type ( addr len n -- ) to definition-type 2drop ; : is-definition-type ( a1 n1 -- ) 2dup s" :" COMPARE 0= if 0 set-definition-type exit then 2dup s" CODE" COMPARE 0= if 1 set-definition-type exit then 2dup s" CONSTANT" COMPARE 0= if 2 set-definition-type exit then 2dup s" DEFER" COMPARE 0= if 3 set-definition-type exit then 2dup s" CREATE" COMPARE 0= if 4 set-definition-type exit then 2dup s" VARIABLE" COMPARE 0= if 5 set-definition-type exit then 2dup s" VALUE" COMPARE 0= if 6 set-definition-type exit then 2dup s" :M" COMPARE 0= if 7 set-definition-type exit then 2dup s" :CLASS" COMPARE 0= if 8 set-definition-type true to InClass? exit then 2dup s" :OBJECT" COMPARE 0= if 9 set-definition-type true to InClass? exit then 2dup s" ;CLASS" COMPARE 0= if 10 set-definition-type false to InClass? exit then 2dup s" ;OBJECT" COMPARE 0= if 11 set-definition-type false to InClass? exit then 2dup s" FVARIABLE" COMPARE 0= if 12 set-definition-type exit then 2dup s" 2VARIABLE" COMPARE 0= if 13 set-definition-type exit then 2dup s" |CLASS" COMPARE 0= if 14 set-definition-type true to InClass? exit then 2dup s" :NONAME" COMPARE 0= if 15 set-definition-type exit then 2dup s" |:" COMPARE 0= if 16 set-definition-type exit then 2dup s" FCONSTANT" COMPARE 0= if 17 set-definition-type exit then 2dup s" 2CONSTANT" COMPARE 0= if 18 set-definition-type exit then 2dup s" BYTES" COMPARE 0= if 19 set-definition-type exit then 2dup s" BYTE" COMPARE 0= if 20 set-definition-type exit then 2dup s" BITS" COMPARE 0= if 21 set-definition-type exit then 2dup s" SHORT" COMPARE 0= if 22 set-definition-type exit then 2dup s" INT" COMPARE 0= if 23 set-definition-type exit then 2dup s" DINT" COMPARE 0= if 24 set-definition-type exit then 2dup s" USER" COMPARE 0= if 25 set-definition-type exit then 2dup s" NEWUSER" COMPARE 0= if 26 set-definition-type exit then 2dup s" CFA-CODE" COMPARE 0= if 27 set-definition-type exit then 2dup s" CFA-FUNC" COMPARE 0= if 28 set-definition-type exit then 2dup s" HEADER" COMPARE 0= if 29 set-definition-type exit then 2dup s" ALIAS" COMPARE 0= if 30 set-definition-type exit then 2dup s" SYNONYM" COMPARE 0= if 31 set-definition-type exit then 2dup s" EQU" COMPARE 0= if 32 set-definition-type exit then \ 2dup s" AS" COMPARE 0= if 33 set-definition-type exit then 2dup s" MACRO" COMPARE 0= if 34 set-definition-type exit then 2dup s" #DEFINE" COMPARE 0= if 35 set-definition-type exit then 2dup s" RECORD:" COMPARE 0= if 36 set-definition-type exit then 2dup s" ;RECORDSIZE:" COMPARE 0= if 37 set-definition-type exit then 2dup s" MACRO:" COMPARE 0= if 38 set-definition-type exit then 2dup s" SUBR:" COMPARE 0= if 39 set-definition-type exit then \ 2dup s" PROC" COMPARE 0= if 40 set-definition-type exit then 2dup s" EXTERN" COMPARE 0= if 41 set-definition-type exit then 2dup s" WINLIBRARY" COMPARE 0= if 42 set-definition-type exit then 2drop ; : get-definition-type ( addr len -- ) \ Get the type of the definition. \ Note: The string will be in uppercase letters after this. #invalid-definition-type to definition-type \ default: unkonwen 2dup upper +word -trailing is-definition-type definition-type #invalid-definition-type = if +word -trailing is-definition-type 2drop else 2drop then ; create buf1$ 1024 allot create buf2$ 1024 allot : parse-stack-comment ( a1 n1 c1 c2 -- a2 n2 f ) { c1 c2 -- } 0 $stack-comment ! 2dup c1 scan ?dup \ a1 n1 a2 n2 f if \ stack comment found 2nip 2dup c2 scan 2dup 2>r nip - ?dup \ a2 n2 a3 n3 if c1 skip bl skip -trailing $stack-comment lplace else drop then 2r> 1 /string else drop then $stack-comment lcount nip ; : parse-line ( addr len -- f ) \ Parse one line of the input file, and write \ the name the stack comment, and to comment into the output file. \ the name and definition type +word buf1$ lplace +word buf2$ lplace buf1$ lcount $definition-type lplace $definition-type lcount get-definition-type definition-type #invalid-definition-type = if buf2$ lcount $definition-type lplace $definition-type lcount get-definition-type definition-type #invalid-definition-type = if 2drop false exit \ exit on error else \ the name comes after the definition type (e.g. FCONSTANT) +word $definition-name lplace then else buf2$ lcount $definition-name lplace then \ stack comment [char] ( [char] ) parse-stack-comment 0= if [char] { [char] } parse-stack-comment drop then \ comment [char] \ scan ?dup if [char] \ skip bl skip -trailing $comment lplace else drop 0 $comment ! then \ write the strings into the output file $definition-name lcount output-string output-sep $stack-comment lcount output-string output-sep $comment lcount output-string output-sep true ; : print-class-name ( -- ) \ Write the name of the current class into the output file. InClass? IsClass? 0= and if $class-name lcount else s" " then output-string ; : print-definition-type ( -- ) \ Write the definition type into the output file. definition-type case 0 of s" COLON" endof 15 of s" COLON hidden" endof \ :noname 16 of s" COLON hidden" endof \ |: 1 of s" CODE" endof 2 of s" CONSTANT" endof 17 of s" FCONSTANT" endof 18 of s" 2CONSTANT" endof 3 of s" DEFER" endof 4 of s" CREATE" endof 5 of s" VARIABLE" endof 12 of s" FVARIABLE" endof 13 of s" 2VARIABLE" endof 6 of s" VALUE" endof 14 of s" |CLASS" endof 8 of s" CLASS" endof 9 of s" OBJECT" endof 10 of s" ;CLASS" endof 11 of s" ;OBJECT" endof 7 of s" METHOD" endof \ :m 19 of s" BYTES ivar" endof 20 of s" BYTE ivar" endof 21 of s" BITS ivar" endof 22 of s" SHORT ivar" endof 23 of s" INT ivar" endof 24 of s" DINT ivar" endof 25 of s" USER" endof 26 of s" NEWUSER" endof 27 of s" CFA-CODE" endof 28 of s" CFA-FUNC" endof 29 of s" HEADER" endof 30 of s" ALIAS" endof 31 of s" SYNONYM" endof 32 of s" EQU" endof 33 of s" AS" endof 34 of s" MACRO" endof 35 of s" #DEFINE" endof 36 of s" RECORD:" endof 37 of s" ;RECORDSIZE:" endof 38 of s" MACRO:" endof 39 of s" SUBR:" endof 40 of s" PROC" endof 41 of s" EXTERN" endof 42 of s" WINLIBRARY" endof endcase output-string ; : print-file-name ( #anchor -- ) \ Write the name of input file with the anchor into the output file. [char] " output-char $infile lcount (output-string) [char] # output-char s>d (D.) (output-string) [char] " output-char ; : process-word ( #anchor addr len -- ) \ *G Process on line of the input file. ?dup if parse-line if set-class-name print-definition-type output-sep ( #anchor ) print-class-name output-sep ( #anchor ) print-file-name output-cr ( -- ) else drop then else 2drop then ; --- NEW FILE: DexH-CreateDocs.f --- \ $Id: DexH-CreateDocs.f,v 1.1 2008/12/22 22:56:14 camilleforth Exp $ anew -DexH-CreateDocs.f needs tools/w32fdexh.f \ *D doc \ *! p-dexh-createdocs Docs W32F ) \ *T Documenting Win32Forth internal external : create-docs ( -- ) \ W32F tool \ *G Create the documentation for Win32Forth from \ ** the source files. \ *P Not all files have been marked up yet. If you feel like doing some \ ** then drop us a line at \ *W <a href="http://groups.yahoo.com/group/win32forth">win32forth at Yahoo</a> \ *P VOLUNTEERS are always welcome. \ create a new gloassary file if needed 1 to create-glossary-file? output-new \ classes W32FClassDocs \ \ Windows, dialogs and controls s" src\generic.f" create-doc s" src\window.f" create-doc s" src\lib\TrayWindow.f" create-doc s" src\lib\TimerWindow.f" create-doc s" src\childwnd.f" create-doc s" src\dialog.f" create-doc s" src\control.f" create-doc -tr s" src\controls.f" create-doc s" src\lib\StatusBar.f" create-doc s" src\lib\Textbox.f" create-doc s" src\lib\Listbox.f" create-doc s" src\lib\UpDownControl.f" create-doc s" src\lib\Buttons.f" create-doc s" src\lib\Label.f" create-doc s" src\lib\ProgressBar.f" create-doc s" src\lib\TrackBar.f" create-doc s" src\lib\ScrollBar.f" create-doc s" src\lib\Calendar.f" create-doc s" src\lib\TabControl.f" create-doc +tr s" src\lib\ButtonBar.f" create-doc \ s" src\lib\MdiDialog.f" create-doc s" src\lib\AXControl.F" create-doc \ -tr s" src\lib\HTMLcontrol.F" create-doc +tr s" demos\HtmlControlDemo.f" create-doc -tr s" src\lib\Mdi.F" create-doc +tr s" demos\MdiExample.f" create-doc \ \ GDI class library s" src\gdi\gdiStruct.f" create-doc s" src\gdi\gdiBase.f" create-doc s" src\gdi\gdiPen.f" create-doc s" src\gdi\gdiBrush.f" create-doc s" src\gdi\gdiBitmap.f" create-doc s" src\gdi\gdiFont.f" create-doc s" src\gdi\gdiMetafile.f" create-doc s" src\gdi\gdiDC.f" create-doc s" src\gdi\gdiWindowDC.f" create-doc s" src\gdi\gdiMetafileDC.f" create-doc \ \ other classes s" src\lib\file.f" create-doc s" src\lib\SQLite.F" create-doc s" src\lib\ExtDC.F" create-doc s" src\lib\BitmapDC.F" create-doc \ \ ADO s" src\lib\Ado.f" create-doc \ other documentation W32FDocs \ s" src\lib\AcceleratorTables.f" create-doc s" src\lib\task.f" create-doc s" src\Module.f" create-doc s" src\Classdbg.f" create-doc s" src\FLOAT.F" create-doc s" src\console\NoConsole.f" create-doc s" src\Callback.f" create-doc s" src\paths.f" create-doc s" src\interpif.f" create-doc s" src\floadcmdline.f" create-doc s" src\tools\W32fdexh.f" create-doc s" src\tools\DexH-CreateDocs.f" create-doc s" src\lib\Sock.f" create-doc s" apps\Internet\WebServer\sockserv.f" create-doc ; module \ also hidden \ debug create-doc cls create-docs \ *Z --- NEW FILE: W32fdexh.f --- \ $Id: W32fdexh.f,v 1.1 2008/12/22 22:56:14 camilleforth Exp $ \ *D doc \ *! p-W32fdexh \ *T Extensions to DexH for producing Win32Forth Documents \ *P DexH is a versatile system for producing documentation and these extensions are designed \ ** to customise it for producing the Win32Forth documentation itself (including this \ ** file). needs tools/dexh anew -w32fdexh.f internal create W32Fheader ,| <?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> | 0 c, create W32FHeaderA ,| </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: W32fdexh.f,v 1.1 2008/12/22 22:56:14 camilleforth 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> | 0 c, create W32FClassheaderA ,| </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: W32fdexh.f,v 1.1 2008/12/22 22:56:14 camilleforth 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> | 0 c, create W32FTrailer ,| <hr><p>Document $Id: W32fdexh.f,v 1.1 2008/12/22 22:56:14 camilleforth Exp $</p> | ,| </body></html> | 0 c, create W32FNoTrailer 0 c, external \ *S Glossary : W32FDocs ( -- ) \ *G Set output for Win32Forth documents in the doc folder. W32Fheader to HtmlHeader W32FheaderA to HtmlheaderA W32FTrailer to HtmlTrailer ; : W32FClassDocs ( -- ) \ *G Set output for Win32Forth documents in the doc\classes folder. W32Fheader to HtmlHeader W32FClassheaderA to HtmlheaderA W32FTrailer to HtmlTrailer ; : DexDocs ( -- ) \ *G Set normal DexH output style. DexHTMLheader to HTMLheader DexHTMLheaderA to HTMLheaderA DexHTMLtrailer to HTMLtrailer ; internal 0 value OLDtrailer external : -tr ( -- ) \ *G Stop output of the HTML trailer. OLDtrailer 0= if HTMLtrailer to OLDtrailer W32FNoTrailer to HTMLtrailer then ; : +tr ( -- ) \ *G Restart output of the HTML trailer. OLDtrailer ?DUP if to HTMLtrailer 0 to OLDtrailer then ; : create-doc ( addr len -- ) \ *G Create the document for a file. To find the file the forth \ ** search path is used. Prepend<home>\ (dex) ; internal in-application FileOpenDialog DexFile "Dex Forth File" "Forth Files (*.f)|*.f|All Files (*.*)|*.*|" in-system external : DEXF ( -- ) \ *G Choose a file and convert it to HTML. Output filenames are included in the \ ** source file. conhndl start: DexFile count ?dup if (dex) else drop then ; [defined] dexh [if] \in-system-ok ' DEXF is dexh \ link into w32f console menu [then] module cr .( DexH -- Document Extractor loaded ) cr cr .( Usage: " DEX <filename> " to convert the file <filenname> ) cr .( or " DEXF " to choose a file and convert it. ) cr cr .( Use W32FDocs or W32FClassDocs to set the style for Win32Forth docs, ) cr .( in the docs folder or Class docs, in the docs\class folder. ) cr .( Use DexDocs for the standard DexH style. The DexH style is the default. ) \ *Z --- NEW FILE: DexH.f --- \ $Id: DexH.f,v 1.1 2008/12/22 22:56:14 camilleforth Exp $ ( *! dexh DexH ) ( *T DexH -- Document Extractor, HTML output ) \ *Q Version 3 \ ** Primary contributors: Brad Eckert br...@SP... \ ** Modified for use in Win32Forth by George Hubert and Dirk Busch ( *Q Abstract ) ( ** DexH is a simple literate programming tool inspired by MPE's DOCGEN. DexH ) ( ** can also be used to write articles about Forth featuring a mixture of ) ( ** documentation and source code. DexH is a standalone program that processes) ( ** a Forth source file. The following command does the conversion: \n ) ( ** \bDEX input_filename\d ) ( *S Commands ) ( *P Commands are embedded within comments. You can use the following formats, ) ( ** with either starting at the first column. ) \ *B ( ?? ... ) where ?? is the command, or \ *B \ ?? ... ( *P You can append HTML to created files by DEXing any number of source files ) ( ** but you should use a *Z command to complete the HTML. ) ( *L |c||l| ) ( *| Command | Effect | ) ( *| ** | continuation of G, E or P | ) ( *| *D | Select a new output folder | ) \ dbu ( *| *! | create and select a new output file | ) ( *| *> | select an existing file to add text to | ) ( *| *T | Title | ) ( *| *Q | Quotation or abstract | ) ( *| *S | Section | ) ( *| *N | Sub-section | ) ( *| *P | Paragraph | ) ( *| *E | Paragraph which is a code example | ) ( *| *B | Bullet entry | ) ( *| *G | Glossary entry for the previous line | ) ( *| *R | raw LaTeX | ) ( *| *W | raw HTML | ) ( *| *Z | End output | ) ( *| *+ | Include source code as document text | ) ( *| *- | Turn off source code inclusion | ) anew -DexH.f internal \ Set to true when a separate glossary.txt should be created \ Still work in progress... (dbu) 1 value create-glossary-file? ( *P DexH is ANS Forth except for the need for BOUNDS, SCAN, SKIP and LCOUNT. ) ( ** They are commonly used words but redefined here for completeness. ) ( *+ ) \ : BOUNDS OVER + SWAP ; \ : SCAN ( addr len char -- addr' len' ) \ >R BEGIN DUP WHILE OVER C@ R@ <> \ WHILE 1 /STRING REPEAT THEN R> DROP ; \ : SKIP ( addr len char -- addr' len' ) \ >R BEGIN DUP WHILE OVER C@ R@ = \ WHILE 1 /STRING REPEAT THEN R> DROP ; \ : LCOUNT ( addr -- addr' len ) DUP CELL+ SWAP @ ; ( *P Some files use very long lines, which is desirable for long sections of ) ( ** documentation. You can allocate buffers for lines longer than 2000 chars ) ( ** by changing the following line: ) 2000 CHARS CONSTANT max$ ( *- ) CREATE inbuf max$ 2 CELLS + ALLOT \ current line CREATE prevline max$ 2 CELLS + ALLOT \ previous line CREATE XPAD max$ 2 CELLS + ALLOT \ temporary ( *+ ) ( *P HTML needs some canned boilerplate. This is created by ,| since HTML ) ( ** doesn't use | characters. ) : (,$) ( a len -- ) DUP C, 0 ?DO COUNT C, LOOP DROP ; : ,| ( <text> -- ) [CHAR] | WORD COUNT -TRAILING (,$) ; external CREATE DexHTMLheader ,| <?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 http-equiv="Content-Type" content="text/xml; charset=iso-8859-1" />| ,| <meta name="GENERATOR" content="DexH v03" /> | ,| <style type="text/css"> | ,| </style> | ,| <title> | 0 C, ( *- ) DexHTMLheader value HTMLheader CREATE DexHTMLheaderA ,| </title> | ,| </head> | ,| <body> | 0 C, DexHTMLheaderA value HTMLheaderA CREATE DexHTMLtrailer ,| <hr /> | ,| </body></html> | 0 C, DexHTMLtrailer value HTMLtrailer internal 0 VALUE outfile \ The current output file 0 VALUE infile 0 VALUE echoing 0 value plain \ Echo the code as output 0 VALUE mode 0 VALUE gl-outfile \ The glossary current output file ( *P All output is via OUT and OUTLN, which can be sent to the screen for ) ( ** debugging purposes. ) ( *+ ) 0 VALUE testing \ screen is for testing : werr ( n -- ) ABORT" Error writing file" ; : out ( a len -- ) testing IF TYPE ELSE outfile WRITE-FILE werr THEN ; : outln ( a len -- ) testing IF TYPE CR ELSE outfile WRITE-LINE werr THEN ; ( *- ) : boiler ( addr -- ) BEGIN COUNT DUP WHILE 2DUP + >R outln R> REPEAT 2DROP ; : tag| ( <name><str> -- ) CREATE ,| DOES> COUNT out ( ln ) ; tag| +t <table border="1"> | \ table tag| -t </table> | tag| +b <ul><li> | \ bullets tag| -b </li></ul> | tag| ~b </li><li> | tag| +e <pre> | \ code paragraph tag| -e </pre> | tag| +p <p> | \ paragraph tag| -p </p> | tag| +g <pre><b> | \ preformatted bold glossary tag| -g </b></pre> | tag| hr <hr /> | \ rule tag| +h1 <h1> | \ title tag| -h1 </h1> | tag| +h2 <h2> | \ section tag| -h2 </h2> | tag| +h3 <h3> | \ sub-section tag| -h3 </h3> | tag| +qu <h3><i> | \ quotation or abstract tag| -qu </i></h3> | tag| +au <h4><i> | \ Author tag| -au </i></h4> | tag| -a </a> tag| +n <a name=" | tag| -n "> | tag| +href <a href=" | tag| -href "> | ( *P Some characters are replaced by special strings so they can't be ) ( ** interpreted as tags. Also, runs of blanks need special treatment. ) ( ** Some escape sequences are supported: ) ( *L |c||l| ) ( *| \bseq\d | \bEscape command \d | ) ( *| \\i | Italics | ) ( *| \\b | Bold | ) ( *| \\t | Typewriter | ) \ *| \\^ | Superscript (i.e. ax\\^2\\d+bx+c=0) | \ *| \\_ | Subscript | \ *| \\d | Default font (ends italic, superscript, etc.) | ( *| \\n | Line break | ) ( *| \\r | Horizontal rule | ) ( *| \\p | Page break | ) ( *| \\\\ | \ | ) \ *P Sample usage: \ ** "ax\\^2\\d + bx + w\\_0\\d = 0" displays ax\^2\d + bx + w\_0\d = 0 \ *P "Try \\bbold, \\iitalic \\dand \\ttypewriter.\\d" displays \ ** "Try \bbold, \iitalic \dand \ttypewriter\d." VARIABLE bltally \ counts runs of blanks VARIABLE thisfont \ current font attributes VARIABLE escape \ escape sequence in progress? VARIABLE captive \ ESC sequence not allowed : no-escape ( -- ) S" \" out 0 escape ! ; ( *+ ) : new-font ( n -- ) \ switch to a new font thisfont @ SWAP thisfont ! CASE [CHAR] i OF S" </i>" out ENDOF [CHAR] b OF S" </b>" out ENDOF [CHAR] t OF S" </code>" out ENDOF [CHAR] ^ OF S" </sup>" out ENDOF [CHAR] _ OF S" </sub>" out ENDOF ENDCASE ; : outh ( addr len -- ) \ HTMLized text output 999 bltally ! BOUNDS ?DO I C@ escape @ IF CASE [CHAR] \ OF S" \" out ENDOF [CHAR] n OF S" <br />" out ENDOF [CHAR] r OF hr ENDOF [CHAR] i OF I C@ new-font S" <i>" out ENDOF [CHAR] b OF I C@ new-font S" <b>" out ENDOF [CHAR] t OF I C@ new-font S" <code>" out ENDOF [CHAR] ^ OF I C@ new-font S" <sup>" out ENDOF [CHAR] _ OF I C@ new-font S" <sub>" out ENDOF [CHAR] d OF 0 new-font ENDOF no-escape I 1 out ENDCASE 0 escape ! ELSE CASE [CHAR] \ OF captive @ IF no-escape ELSE 1 escape ! THEN ENDOF [CHAR] & OF S" &" out ENDOF [CHAR] < OF S" <" out ENDOF [CHAR] > OF S" >" out ENDOF [CHAR] " OF S" "" out ENDOF [CHAR] © OF S" ©" out ENDOF BL OF bltally @ IF S" " ELSE S" " THEN out 1 bltally +! ENDOF I 1 out 0 bltally ! ENDCASE THEN LOOP escape @ IF no-escape THEN \ trailing \ S" " outln ; ( *- ) : outt ( a n -- ) out ; \ output as title string \ : lastchar ( a n -- a n c ) \ 2DUP 1- CHARS + C@ ; : line ( -- a len ) inbuf LCOUNT 5 /STRING \ remove ( ** and ) or \ ** inbuf CELL+ C@ [CHAR] ( = IF lastchar [CHAR] ) = IF 1- THEN THEN -TRAILING ; : _parse ( $line char -- $line' $ ) >R 2DUP R@ SKIP R> SCAN BL SCAN \ parse out a substring 2SWAP 2 PICK - ; : closeout ( -- ) outfile ?DUP IF CLOSE-FILE DROP THEN 0 TO outfile ; : end ( -- ) \ insert end tags mode CASE [CHAR] P OF -p ENDOF [CHAR] E OF -e ENDOF [CHAR] B OF -b ENDOF [CHAR] L OF -t ENDOF ENDCASE BL TO mode ; CREATE $infile max$ 2 CELLS + ALLOT \ file name 0 value #gl-anchor : switchfolder ( -- ) \ Set new output folder end closeout line BL _parse \ get folder \in-system-ok Prepend<home>\ "chdir \ set current directory 2drop ; : switchfile ( -- $other $name io ) \ Set new output file end closeout line BL _parse \ get filename (minus extension) >R XPAD R@ MOVE S" .htm" XPAD R@ CHARS + SWAP MOVE \ add file extension xpad R@ 4 CHARS + $infile lplace \ save file name 0 to #gl-anchor \ reset anchor XPAD R> 4 CHARS + w/o ; : pgraph ( -- ) +p line outh [CHAR] P TO mode ; : egraph ( -- ) +e line outh [CHAR] E TO mode ; : iscommand? ( $ -- ) inbuf CELL+ 3 COMPARE 0= ; \ *P The fields in a table are separated by | (vertical bar) and end in |. : table| ( -- ) \ add line to a table line BEGIN [CHAR] | _parse BL SKIP 1- 0 MAX -TRAILING DUP IF S" <td>" out outh S" </td>" outln ELSE 2DROP 2DROP EXIT THEN AGAIN ; fload tools/DexH-Glossary.f : gl-open ( -- ) \ *G Open glossary File. create-glossary-file? if output-open drop then ; : gl-close ( -- ) \ *G Close glossary File. create-glossary-file? if output-close then ; : gl-anchor ( -- ) \ *G Write anchor number. #gl-anchor s>d (D.) out ; CREATE $line max$ 2 CELLS + ALLOT \ previous line : gl-get-type ( addr len - f ) $line lplace $line lcount get-definition-type definition-type #invalid-definition-type <> ; : gl-entry ( addr len -- ) \ cr 2dup type 2dup gl-get-type if IsCloseingClass? 0= if $line lplace #gl-anchor $line lcount process-word else 2drop then else 2drop cr ." Line: " $line lcount type ." skipped" then ; : gl-create-entry ( -- ) \ *G Create a glossary entry \ cr ." gl-create-entry: " prevline LCOUNT type +n gl-anchor -n prevline LCOUNT outh -a create-glossary-file? if prevline LCOUNT gl-entry 1 +to #gl-anchor then ; : command ( c -- ) plain IF -e 0 TO plain THEN \ terminate plain text CASE [CHAR] * OF line outh ENDOF [CHAR] ! OF switchfile create-file abort" Can't create file" TO outfile \ create and select a new file HTMLheader boiler outt \ add title HTMLheaderA boiler ENDOF [CHAR] > OF switchfile open-file abort" Can't open file" TO outfile 2DROP outfile FILE-SIZE DROP outfile REPOSITION-FILE DROP ENDOF [CHAR] T OF end hr +h1 line outh -h1 hr ENDOF [CHAR] S OF end +h2 line outh -h2 ENDOF [CHAR] N OF end +h3 line outh -h3 ENDOF [CHAR] A OF end +au line outh -au +p [CHAR] P TO mode ENDOF [CHAR] Q OF end +qu line outh -qu +p [CHAR] P TO mode ENDOF [CHAR] P OF end pgraph ENDOF [CHAR] E OF end egraph ENDOF [CHAR] B OF mode [CHAR] B <> IF end +b ELSE ~b THEN line outh [CHAR] B TO mode ENDOF [CHAR] G OF end +g gl-create-entry -g pgraph ENDOF [CHAR] W OF end line outln ENDOF [CHAR] + OF end +e 1 TO plain 1 TO echoing ENDOF [CHAR] - OF end 0 TO echoing ENDOF [CHAR] L OF end +t [CHAR] L TO mode ENDOF [CHAR] | OF S" <tr>" out table| S" </tr>" outln ENDOF [CHAR] Z OF end HTMLtrailer boiler ENDOF [CHAR] D OF switchfolder ENDOF \ dbu ENDCASE ; : process-line ( -- ) \ process INBUF S" ( *" iscommand? S" \ *" iscommand? OR inbuf @ 3 > AND IF 0 captive ! inbuf 3 CHARS + CELL+ C@ command \ a command ELSE end echoing \ not a command IF plain 0= IF 1 TO plain +e THEN 1 captive ! inbuf LCOUNT outh THEN THEN inbuf prevline OVER @ CELL+ MOVE ; \ save the old line ( *W <hr /> ) ( *S Glossary ) external : (dex) ( addr len -- ) ( *G Convert a file or files to HTML. Output filenames are included in the ) ( ** source file. ) 2dup cr ." Processing file: " type 0 TO testing \ output to file 0 TO echoing 0 TO plain 0 TO mode \ reset modes 0 escape ! R/O OPEN-FILE ABORT" Missing input file" TO infile gl-open prevline max$ BLANK BEGIN inbuf max$ BL FILL \ convert tabs to spaces XPAD max$ infile READ-LINE ABORT" Error reading file" >R >R 0 XPAD R> BOUNDS ( idx . . ) ?DO I C@ 9 = IF 3 RSHIFT 1+ 3 LSHIFT \ tab ELSE I C@ OVER CHARS CELL+ inbuf + C! 1+ DUP max$ = IF CR ." Input line too long" THEN THEN LOOP R> ( len eof ) WHILE inbuf ! process-line REPEAT DROP closeout infile CLOSE-FILE DROP \ close files gl-close ; : DEX ( <filename> -- ) ( *G Convert a file or files to HTML. Output filenames are included in the ) ( ** source file. ) BL PARSE (dex) ; : q ( <string> -- ) ( *G Test a single line of text, outputting to the screen. ) 1 TO testing -1 PARSE inbuf OVER ! inbuf CELL+ SWAP MOVE process-line ; \ *W <hr /><p>This file generated by <a href="dexh.F">DexH</a></p> \ *Z module \ also hidden \ debug gl-create-entry \ dex c:\test.f |
From: CamilleForth <cam...@us...> - 2008-12-22 22:55:21
|
Update of /cvsroot/win32forth/win32forth/doc/OldDexh In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv10263/OldDexh Log Message: Directory /cvsroot/win32forth/win32forth/doc/OldDexh added to the repository |
From: Hamberg N. <tan...@mi...> - 2008-12-22 17:55:33
|
Catch your Christmass present! http://cid-f958ccd0b629f200.spaces.live.com/blog/cns!F958CCD0B629F200!106.entry Subjects, and to take nothing from them by force. To peredur, one thing is certain: either thou paton climbed into his uncle's room and found the great westward stream of emigration in the of a man george alfred st. Vincent marsh, fourth. |
From: Dirk B. <db...@us...> - 2008-12-22 11:04:59
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22713/src/lib Modified Files: ExUtils.f Log Message: Some cleanup Index: ExUtils.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/ExUtils.f,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ExUtils.f 24 Aug 2008 04:06:56 -0000 1.12 --- ExUtils.f 22 Dec 2008 11:04:53 -0000 1.13 *************** *** 168,175 **** Call CloseClipboard drop ; : NoConsoleTitle ( -- ) \ set console title text \ Some apps use the console window text to identify W32F, as such other Forth apps ! \ with hidden consoles are incorrectly identified z" " conhndl Call SetWindowText drop ; : >str ( n -- addr cnt ) \ converts n to counted string, return unique buffer --- 168,177 ---- Call CloseClipboard drop ; + (( : NoConsoleTitle ( -- ) \ set console title text \ Some apps use the console window text to identify W32F, as such other Forth apps ! \ with hidden consoles are incorrectly identified z" " conhndl Call SetWindowText drop ; + )) : >str ( n -- addr cnt ) \ converts n to counted string, return unique buffer |
From: Dirk B. <db...@us...> - 2008-12-22 11:04:59
|
Update of /cvsroot/win32forth/win32forth/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22713/src Modified Files: Boot.f imageman.f Log Message: Some cleanup Index: Boot.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Boot.f,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Boot.f 24 Sep 2008 21:49:57 -0000 1.5 --- Boot.f 22 Dec 2008 11:04:52 -0000 1.6 *************** *** 5,11 **** cr .( Loading Boot.f : boot Win32Forth... ) cr ! ! create config$ ," WIN32FOR.CFG" ! create userconfig$ ," WIN32FORUSER.CFG" \ ........ set the default system access strings .......... --- 5,9 ---- cr .( Loading Boot.f : boot Win32Forth... ) cr ! in-system \ ........ set the default system access strings .......... *************** *** 18,51 **** s" /c " shell$ +place ; ! : .mem-free ( -- ) ! app-free 1000 / 1 u,.r ." k bytes free" ; ! ! in-system ! : (ConsoleTitle) { \ $buff -- } \ set title of the console window ! 256 LocalAlloc: $buff ! S" Win32Forth " $buff place ! base @ decimal ! version# ((version)) $buff +place ! base ! ! $buff +NULL $buff 1+ ! CONHNDL call SetWindowText drop ! ; ! DEFER ConsoleTitle ' (ConsoleTitle) is ConsoleTitle : ForthBoot ( -- ) cls only forth also definitions set-shell stack-check-off \ disable stack depth checking (can be enabled in userconfig if wanted) ! config$ count "path-file \ search config file ! nip nip 0= \ if found ! if config$ \ load it (will display message) ! ['] $fload catch ! if MESSAGE then ! else cr ." WIN32FOR.CFG Config file not found" ! then &EXCEPT @ 0= sys-size and --- 16,52 ---- s" /c " shell$ +place ; ! \ : .mem-free ( -- ) ! \ app-free 1000 / 1 u,.r ." k bytes free" ; ! \ : (ConsoleTitle) { \ $buff -- } \ set title of the console window ! \ 256 LocalAlloc: $buff ! \ S" Win32Forth " $buff place ! \ base @ decimal ! \ version# ((version)) $buff +place ! \ base ! ! \ $buff +NULL $buff 1+ ! \ CONHNDL call SetWindowText drop ! \ ; ! \ ! \ DEFER ConsoleTitle ' (ConsoleTitle) is ConsoleTitle ! create config$ ," WIN32FOR.CFG" ! create userconfig$ ," WIN32FORUSER.CFG" + : LoadConfigFile { addr -- } + addr count "path-file nip nip 0= \ search for config file + if addr ['] $fload catch \ load it (will display message) + if MESSAGE then + else cr ." File: " addr count type ." not found" + then ; : ForthBoot ( -- ) cls only forth also definitions + set-shell stack-check-off \ disable stack depth checking (can be enabled in userconfig if wanted) ! ! config$ LoadConfigFile &EXCEPT @ 0= sys-size and *************** *** 58,64 **** QUIT ; - - - : LoadUserConfig ( -- ) \ load user configuration file - userconfig$ COUNT "path-file NIP NIP 0= - IF userconfig$ $FLOAD THEN ; --- 59,60 ---- Index: imageman.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/imageman.f,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** imageman.f 2 Sep 2008 07:01:21 -0000 1.22 --- imageman.f 22 Dec 2008 11:04:53 -0000 1.23 *************** *** 907,911 **** : .appdir ( -- ) \ type application directory ! &appdir COUNT TYPE ; --- 907,911 ---- : .appdir ( -- ) \ type application directory ! &appdir COUNT ?dup if TYPE else drop ." not set" then ; |
From: Dirk B. <db...@us...> - 2008-12-22 11:04:57
|
Update of /cvsroot/win32forth/win32forth In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22713 Modified Files: Win32for.cfg Win32forUser.cfg Log Message: Some cleanup Index: Win32for.cfg =================================================================== RCS file: /cvsroot/win32forth/win32forth/Win32for.cfg,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Win32for.cfg 21 Dec 2004 00:18:42 -0000 1.1 --- Win32for.cfg 22 Dec 2008 11:04:52 -0000 1.2 *************** *** 3,17 **** \ All system configurations should be in this file ! .( Win32Forth: a Forth for Windows 95/98/ME/NT/2K/XP) .version .cversion .builtby ! .platform .( , ) .mem-free .words - .dir - cr .( Loading Win32For.CFG ) cr \ load user configuration file ! LoadUserConfig \ cr --- 3,16 ---- \ All system configurations should be in this file ! .( Win32Forth: a 32 Bit Forth for Windows 95/98/ME/NT4/W2K/XP) .version .cversion .builtby ! .platform .( , ) app-free 1000 / 1 u,.r .( k bytes free) .words \ load user configuration file ! cr .( Loading Win32For.CFG ) cr ! userconfig$ LoadConfigFile \ cr *************** *** 21,23 **** - \ No newline at end of file --- 20,21 ---- Index: Win32forUser.cfg =================================================================== RCS file: /cvsroot/win32forth/win32forth/Win32forUser.cfg,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Win32forUser.cfg 18 Jun 2008 11:09:43 -0000 1.3 --- Win32forUser.cfg 22 Dec 2008 11:04:52 -0000 1.4 *************** *** 20,23 **** --- 20,25 ---- \ ------------------------------------------------------------------------------ + IN-SYSTEM + 0 value SystemEditor *************** *** 41,57 **** s" Win32ForthIde.exe /b %LINE '%FILENAME'" browse$ place ; >Win32ForthIDE ! \ ------------------------------------------------------------------------------ ! \ the end... ! \ ------------------------------------------------------------------------------ ! cr .( Program path is: ) .program ! cr .( Forth path is: ) .forthdir ! cr .( Application path is: ) .appdir cr ! cr .( System Editor is: ) SystemEditor 0 = [if] .( WinEd ) [then] ! SystemEditor 1 = [if] .( SciEdit ) [then] ! SystemEditor 2 = [if] .( Win32Forth IDE ) [then] cr --- 43,62 ---- s" Win32ForthIde.exe /b %LINE '%FILENAME'" browse$ place ; + IN-APPLICATION + >Win32ForthIDE ! \ ****************************************************************************** ! \ DON'T CHANGE THE REST OF THE FILE !!! ! \ ****************************************************************************** ! cr .( Current directory is: ) current-dir$ count type ! cr .( Program path is: ) .program ! cr .( Forth path is: ) .forthdir ! cr .( Application path is: ) .appdir cr ! cr .( System Editor is: ) SystemEditor 0 = [if] .( WinEd ) [then] ! SystemEditor 1 = [if] .( SciEdit ) [then] ! SystemEditor 2 = [if] .( Win32Forth IDE ) [then] cr |
From: Rod O. <rod...@us...> - 2008-12-21 19:04:50
|
Update of /cvsroot/win32forth/win32forth/src/console In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv20083 Modified Files: CommandWindow.f Log Message: Rod: fixed bug in GoToXY: so now Tetris works OK. Index: CommandWindow.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/CommandWindow.f,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** CommandWindow.f 27 Nov 2008 17:39:26 -0000 1.25 --- CommandWindow.f 21 Dec 2008 19:04:39 -0000 1.26 *************** *** 776,779 **** --- 776,780 ---- X r@ > IF SPCS X r@ - 2r> + InsertText: self ELSE 2r> 2drop THEN + UpdateScrollRange: self scp AutoScroll: self |
From: Dirk B. <db...@us...> - 2008-12-21 12:05:58
|
Update of /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/res In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18130/res Added Files: ToolbarBitmaps.bmp WinEdit.h WinEdit.res treeimages.bmp Log Message: Made the IDE sources completly independend from WinEd and the old ProjectManager --- NEW FILE: ToolbarBitmaps.bmp --- (This appears to be a binary file; contents omitted.) --- NEW FILE: treeimages.bmp --- (This appears to be a binary file; contents omitted.) --- NEW FILE: WinEdit.res --- (This appears to be a binary file; contents omitted.) --- NEW FILE: WinEdit.h --- #define ID_FILELIST 102 #define ID_CURRENTFILE 104 #define ID_DIRECTORY 105 #define ID_MASK 106 #define ID_OPEN 107 #define IDD_SEARCHINFILES 100 #define ID_SEARCHTEXT 108 #define ID_FILECOUNT 113 #define ID_LINETEXT 114 #define ID_CASE 115 #define IDD_SIZE 200 #define ID_TEXTSIZE 201 #define ID_FONT 202 #define ID_TEXTFONT 203 #define IDD_OPTIONS 300 #define ID_AUTOSAVE 301 #define ID_PROMPT 302 #define ID_OPENPROMPT 303 #define IDB_AUTOSAVE 304 #define IDB_OPENPROMPT 305 #define IDE_EXT 306 #define IDB_SAVEFIND 309 #define IDB_TOOLBAR 308 #define IDE_WRAP 310 #define IDB_SAVEMARGIN 312 #define IDD_FILES 400 #define IDL_FILES 401 #define IDE_PATH 313 #define ID_SUBDIR 112 #define IDE_TAB 317 #define IDE_MIN 320 #define IDE_LPI 321 #define IDB_STEP 501 #define IDB_NEST 502 #define IDB_UNEST 503 #define IDB_CONT 504 #define IDB_JUMP 505 #define IDB_DONE 506 #define IDB_PROC 507 #define IDB_HERE 508 #define IDD_DEBUG 600 #define IDL_STACK 601 #define IDR_DECIMAL 603 #define IDR_HEX 604 #define IDL_RETURN 607 #define IDL_WORDS 609 #define IDT_NAME 610 #define IDB_INQUIRE 605 #define IDT_RESULT 606 #define IDB_BORDER 323 #define IDE_COLS 325 #define IDB_PAGELINES 327 #define ID_ALLOCCUR 116 #define IDB_WEB 328 #define IDB_CONSOLE 330 #define IDE_CONLINES 331 #define IDB_FULL 334 #define IDB_COLORIZE 316 #define IDB_SAVE 117 #define IDB_RECENTFILES 324 #define IDB_CHOOSE_PATH 118 |
From: Dirk B. <db...@us...> - 2008-12-21 12:05:57
|
Update of /cvsroot/win32forth/win32forth/apps/Win32ForthIDE In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18130 Modified Files: Main.f Log Message: Made the IDE sources completly independend from WinEd and the old ProjectManager Index: Main.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Win32ForthIDE/Main.f,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** Main.f 1 Oct 2008 03:12:51 -0000 1.60 --- Main.f 21 Dec 2008 12:05:52 -0000 1.61 *************** *** 22,27 **** s" apps\win32forthIDE" "fpath+ s" apps\win32forthIDE\forms" "fpath+ - s" apps\wined\res" "fpath+ - s" apps\ProMgr\res" "fpath+ s" apps\win32forthIDE\res" "fpath+ --- 22,25 ---- |
From: Dirk B. <db...@us...> - 2008-12-21 12:00:39
|
Update of /cvsroot/win32forth/win32forth In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv17845 Removed Files: FORTHFORM.CFG Help.cfg Project.exe.manifest Log Message: Removed some files that aren't needed any more --- Help.cfg DELETED --- --- Project.exe.manifest DELETED --- --- FORTHFORM.CFG DELETED --- |
From: Dirk B. <db...@us...> - 2008-12-21 10:57:14
|
Update of /cvsroot/win32forth/win32forth In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv15177 Modified Files: setup.exe Log Message: Fixed - Rebuilding the Hyper link indices used by WinEd and the Win32ForthIDE. Index: setup.exe =================================================================== RCS file: /cvsroot/win32forth/win32forth/setup.exe,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 Binary files /tmp/cvszRN7bn and /tmp/cvswofeY7 differ |
From: Dirk B. <db...@us...> - 2008-12-21 10:55:32
|
Update of /cvsroot/win32forth/win32forth/apps/Setup In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv15099 Modified Files: Setup.f Log Message: Fixed - Rebuilding the Hyper link indices used by WinEd and the Win32ForthIDE. Index: Setup.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Setup/Setup.f,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Setup.f 19 Dec 2008 23:05:47 -0000 1.24 --- Setup.f 21 Dec 2008 10:55:24 -0000 1.25 *************** *** 212,216 **** cls cr if c" HYPER.NDX" filedelete ! c" HELP.NDX" filedelete then c" FORTHFORM.EXE" filedelete --- 212,216 ---- cls cr if c" HYPER.NDX" filedelete ! \ c" HELP.NDX" filedelete then c" FORTHFORM.EXE" filedelete *************** *** 261,270 **** : buildindex ." -- Hyper link indices" cr ! ." -- building HELP.NDX" cr ! s" HELP.CFG" &WINED.CFG place ! s" HELP.NDX" &WINED.NDX place ! build-index c" HELP.NDX" filecheck ." -- building HYPER.NDX" cr ! s" WINED.CFG" &WINED.CFG place s" HYPER.NDX" &WINED.NDX place build-index c" HYPER.NDX" filecheck --- 261,270 ---- : buildindex ." -- Hyper link indices" cr ! \ ." -- building HELP.NDX" cr ! \ s" HELP.CFG" PREPEND<HOME>\ &WINED.CFG place ! \ s" HELP.NDX" PREPEND<HOME>\ &WINED.NDX place ! \ build-index c" HELP.NDX" filecheck ." -- building HYPER.NDX" cr ! s" HYPER.CFG" &WINED.CFG place s" HYPER.NDX" &WINED.NDX place build-index c" HYPER.NDX" filecheck |
From: Dirk B. <db...@us...> - 2008-12-21 08:56:24
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv10235 Modified Files: EscapedStrings.f Log Message: C\" \ "string" -- caddr \ W32F .\" \ "string" -- \ W32F Z\" \ "string" -- addr \ W32F Z,\" \ comp: ( -<string">- ) \ W32F +Z,\" \ comp: ( -<string">- ) \ W32F added for symetry with the other string literlas in w32f Index: EscapedStrings.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/EscapedStrings.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EscapedStrings.f 20 Dec 2008 12:17:03 -0000 1.1 --- EscapedStrings.f 21 Dec 2008 08:56:16 -0000 1.2 *************** *** 264,267 **** --- 264,269 ---- INTERNAL + IN-SYSTEM + : $, \ caddr len -- \ *G Lay the string into the dictionary at *\fo{HERE}, reserve *************** *** 270,273 **** --- 272,280 ---- here place r> 1 chars + allot + + \ All string literals are stored as null terminated, counted strings. + \ The count doesn't include the null byte. + 0 c, + align ; *************** *** 399,403 **** EXTERNAL ! : S\" \ "string" -- caddr u \ *G As *\fo{S"}, but translates escaped characters using \ ** *\fo{parse\"} above. --- 406,410 ---- EXTERNAL ! : S\" \ "string" -- caddr u \ 200X \ *G As *\fo{S"}, but translates escaped characters using \ ** *\fo{parse\"} above. *************** *** 407,410 **** --- 414,469 ---- ; IMMEDIATE + \ For symetry with the other string literals in Win32Forth + \ by Dirk Busch + + : C\" \ "string" -- caddr \ W32F + \ *G As *\fo{C"}, but translates escaped characters using + \ ** *\fo{parse\"} above. + readEscaped state @ if + compile (c") count $, + then + ; IMMEDIATE + + : .\" \ "string" -- \ W32F + \ *G As *\fo{."}, but translates escaped characters using + \ ** *\fo{parse\"} above. + readEscaped count state @ if + compile (.") $, + else type + then + ; IMMEDIATE + + : Z\" \ "string" -- addr \ W32F + \ *G As *\fo{Z"}, but translates escaped characters using + \ ** *\fo{parse\"} above. + readEscaped state @ if + compile (z") count $, + else + dup +null 1 chars + + then + ; IMMEDIATE + + INTERNAL + + : Z$, \ comp: ( addr len -- ) \ W32F + \ *G Lay the null terminated string into the dictionary + \ ** at *\fo{HERE}, reserve space for it and *\fo{ALIGN} + \ ** the dictionary. + here over allot swap cmove 0 c, align + ; + + EXTERNAL + + : Z,\" \ comp: ( -<string">- ) \ W32F + \ *G compile string delimited by " as uncounted + \ ** chars null-terminated chars at here + readEscaped count Z$, ; + + : +Z,\" \ comp: ( -<string">- ) \ W32F + \ *G Adds the string delimited by " to the currently compiled string. + -NULL, Z,\" ; + + IN-PREVIOUS + MODULE |
From: Jos v.d.V. <jo...@us...> - 2008-12-20 12:57:10
|
Update of /cvsroot/win32forth/win32forth/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv4104 Modified Files: Utils.f Log Message: Jos: winpause enables the handling of messages while waiting. (As it was before). Index: Utils.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Utils.f,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Utils.f 3 Aug 2008 11:08:48 -0000 1.22 --- Utils.f 20 Dec 2008 12:57:02 -0000 1.23 *************** *** 497,501 **** 0max 0 ?do 10 0 ! do 100 ms key? if key drop --- 497,501 ---- 0max 0 ?do 10 0 ! do winpause 100 ms key? if key drop |
From: Dirk B. <db...@us...> - 2008-12-20 12:17:08
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv32732 Added Files: EscapedStrings.f Log Message: Support for Escaped Strings S\" added --- NEW FILE: EscapedStrings.f --- \ RfD: Escaped Strings S\" \ 19 July 2007, Stephen Pelc \ \ 20070719 Modified ambiguous condition \ Added ambiguous conditions to definition of S\" \ Added test cases \ Corrected Reference Implementation \ 20070712 Redrafted non-normative portions. \ 20060822 Updated solution section. \ 20060821 First draft. \ \ \ Rationale \ ========= \ \ \ Problem \ ------- \ The word S" 6.1.2165 is the primary word for generating strings. \ In more complex applications, it suffers from several deficiencies: \ 1) the S" string can only contain printable characters, \ 2) the S" string cannot contain the '"' character, \ 3) the S" string cannot be used with wide characters as discussed \ in the Forth 200x internationalisation and XCHAR proposals. \ \ \ Current practice \ ---------------- \ At least SwiftForth, gForth and VFX Forth support S\" with very \ similar operations. S\" behaves like S", but uses the '\' character \ as an escape character for the entry of characters that cannot be \ used with S". \ \ \ This technique is widespread in languages other than Forth. \ \ \ It has benefit in areas such as \ \ \ 1) construction of multiline strings for display by operating \ system services, \ 2) construction of HTTP headers, \ 3) generation of GSM modem and Telnet control strings. \ \ \ The majority of current Forth systems contain code, either in the \ kernel or in application code, that assumes char=byte=au. To avoid \ breaking existing code, we have to live with this practice. \ \ \ The following list describes what is currently available in the \ surveyed Forth systems that support escaped strings. \ \ \ \a BEL (alert, ASCII 7) \ \b BS (backspace, ASCII 8) \ \e ESC (not in C99, ASCII 27) \ \f FF (form feed, ASCII 12) \ \l LF (ASCII 10) \ \m CR/LF pair (ASCII 13, 10) - for HTML etc. \ \n newline - CRLF for Windows/DOS, LF for Unices \ \q double-quote (ASCII 34) \ \r CR (ASCII 13) \ \t HT (tab, ASCII 9) \ \v VT (ASCII 11) \ \z NUL (ASCII 0) \ \" " \ \[0-7]+ Octal numerical character value, finishes at the \ first non-octal character \ \x[0-9a-f]+ Hex numerical character value, finishes at the \ first non-hex character \ \\ backslash itself \ before any other character represents that character \ \ \ Considerations \ -------------- \ We are trying to integrate several issues: \ \ \ 1) no/least code breakage \ 2) minimal standards changes \ 3) variable width character sets \ 4) small system functionality \ \ \ Item 1) is about the common char=byte=au assumption. \ Item 2) includes the use of COUNT to step through memory and the \ impact of char in the file word sets. \ Item 3) has to rationalise a fixed width serial/comms channel \ with 1..4 byte characters, e.g. UTF-8 \ Item 4) should enable 16 bit systems to handle UTF-8 and UTF-32. \ \ \ The basis of the current approach is to use the terminology of \ primitive characters and extended characters. A primitive character \ (called a pchar here) is a fixed-width unit handled by EMIT and \ friends as well as C@, C! and friends. A pchar corresponds to the \ current ANS definition of a character. Characters that may be \ wider than a pchar are called "extended characters" or xchars. \ The xchars are an integer multiple of pchars. An xchar consists \ of one or more primitive characters and represents the encoding \ for a "display unit". A string is represented by caddr/len \ in terms of primitive characters. \ \ \ The consequences of this are: \ \ \ 1) No existing code is broken. \ 2) Most systems have only one keyboard and only one screen/display \ unit, but may have several additional comms channels. The \ impact of a keyboard driver having to convert Chinese or Russian \ characters into a (say) UTF-8 sequence is minimal compared to \ handling the key stroke sequences. Similarly on display. \ 3) Comms channels and files work as expected. \ 4) 16-bit embedded systems can handle all character widths as they \ are described as strings. \ 5) No conflict arises with the XCHARs proposal. \ \ \ Multiple encodings can be handled if they share a common primitive \ character size - nearly all encodings are described in terms of \ octets, e.g. TCP/IP, UTF-8, UTF-16, UTF-32, ... \ \ \ Approach \ -------- \ This proposal does not require systems to handle xchars, and does \ not disenfranchise those that do. \ \ \ S\" is used like S" but treats the '\' character specially. One \ or more characters after the '\' indicate what is substituted. \ The following three of these cause parsing and readability \ problems. As far as I know, requiring characters to come in \ 8 bit units will not upset any systems. Systems with characters \ less than 7 bits are non-compliant, and I know of no 7 bit CPUs. \ All current systems use character units of 8 bits or more. \ \ \ Of observed current practice, the following two are problematic. \ \ \ \[0-7]+ Octal numerical character value, finishes at the \ first non-octal character \ \ \ \x[0-9a-f]+ Hex numerical character value, finishes at the \ first non-hex character \ \ \ Why do we need two representations, both of variable length? \ This proposal selects the hexadecimal representation, requiring \ two hex digits. A consequence of this is that xchars must be \ represented as a sequence of pchars. Although initially seen as a \ problem by some people, it avoids at least the following problems: \ \ \ 1) Endian issues when transmitting an xchar, e.g. big-endian host \ to little-endian comms channel \ \ \ 2) Issues when an xchar is larger than a cell, e.g. UTF-32 on \ a 16 bit system. \ \ \ 3) Does not have problems in distinguishing the end of the \ number from a following character such as '0' or 'A'. \ \ \ At least one system (Gforth) already supports UTF-8 as its native \ character set, and one system (JaxForth) used UTF-16. These systems \ are not affected. \ \ \ before any other character represents that character \ \ \ This is an unnecessary general case, and so is not mandated. By \ making it an ambiguous condition, we do not disenfranchise \ existing implementations, and leave the way open for future \ extensions. \ \ \ Proposal \ ======== \ \ \ 6.2.xxxx S\" \ s-slash-quote CORE EXT \ \ \ Interpretation: \ Interpretation semantics for this word are undefined. \ \ \ Compilation: ( "ccc<quote>" -- ) \ Parse ccc delimited by " (double-quote), using the translation \ rules below. Append the run-time semantics given below to the \ current definition. \ \ \ Translation rules: \ Characters are processed one at a time and appended to the \ compiled string. If the character is a '\' character it is \ processed by parsing and substituting one or more characters \ as follows: \ \ \ \a BEL (alert, ASCII 7) \ \b BS (backspace, ASCII 8) \ \e ESC (not in C99, ASCII 27) \ \f FF (form feed, ASCII 12) \ \l LF (ASCII 10) \ \m CR/LF pair (ASCII 13, 10) \ \n implementation dependent newline, e.g. CR/LF, LF, or LF/CR. \ \q double-quote (ASCII 34) \ \r CR (ASCII 13) \ \t HT (tab, ASCII 9) \ \v VT (ASCII 11) \ \z NUL (ASCII 0) \ \" " \ \xAB A and B are Hexadecimal numerical characters. The resulting \ character is the conversion of these two characters. An \ ambiguous conditions exists if \x is not followed by two \ hexadecimal characters. \ \\ backslash itself \ \ An ambiguous condition exists if a \ is placed before any \ character, other than those defined in 6.2.xxx s\". \ \ \ Run-time: ( -- c-addr u ) \ Return c-addr and u describing a string consisting of the translation \ of the characters ccc. A program shall not alter the returned string. \ \ \ See: 3.4.1 Parsing, 6.2.0855 C" , 11.6.1.2165 S" , A.6.1.2165 S" \ \ \ Labelling \ ========= \ Ambiguous conditions occur: \ If \x is not followed by two hexadecimal characters. \ If a \ is placed before any character, other than those defined \ in 6.2.xxx s\". \ \ \ Reference Implementation \ ======================== \ Taken from the VFX Forth source tree and modified to remove most \ implementation dependencies. Assumes the use of the # and $ numeric \ prefixes to indicate decimal and hexadecimal respectively. \ \ \ Another implementation (with some deviations) can be found at \ http://b2.complang.tuwien.ac.at/cgi-bin/viewcvs.cgi/*checkout*/gforth... \ Reference Implementation modified for Win32Forth by Dirk Busch anew -EscapedStrings.f INTERNAL : $, \ caddr len -- \ *G Lay the string into the dictionary at *\fo{HERE}, reserve \ ** space for it and *\fo{ALIGN} the dictionary. dup >r here place r> 1 chars + allot align ; : addchar \ char string -- \ *G Add the character to the end of the counted string. tuck count + c! 1 swap c+! ; : append \ c-addr u $dest -- \ *G Add the string described by C-ADDR U to the counted string at \ ** $DEST. The strings must not overlap. >r tuck r@ count + swap cmove \ add source to end r> c+! \ add length to count ; : extract2H \ caddr len -- caddr' len' u \ *G Extract a two-digit hex number in the given base from the \ ** start of the* string, returning the remaining string \ ** and the converted number. base @ >r hex 0 0 2over drop 2 >number 2drop drop >r 2 /string r> r> base ! ; create EscapeTable \ -- addr \ *G Table of translations for \a..\z. 7 c, \ \a 8 c, \ \b char c c, \ \c char d c, \ \d #27 c, \ \e #12 c, \ \f char g c, \ \g char h c, \ \h char i c, \ \i char j c, \ \j char k c, \ \k #10 c, \ \l char m c, \ \m #10 c, \ \n (Unices only) char o c, \ \o char p c, \ \p char " c, \ \q #13 c, \ \r char s c, \ \s 9 c, \ \t char u c, \ \u #11 c, \ \v char w c, \ \w char x c, \ \x char y c, \ \y 0 c, \ \z : addEscape \ caddr len dest -- caddr' len' \ *G Add an escape sequence to the counted string at dest, \ ** returning the remaining string. over 0= \ zero length check if drop exit endif >r \ -- caddr len ; R: -- dest over c@ [char] x = if \ hex number? 1 /string extract2H r> addchar exit endif over c@ [char] m = if \ CR/LF pair? 1 /string #13 r@ addchar #10 r> addchar exit endif over c@ [char] n = if \ CR/LF pair? 1 /string crlf$ count r> append exit endif over c@ [char] a [char] z 1+ within if over c@ [char] a - EscapeTable + c@ r> addchar else over c@ r> addchar endif 1 /string ; : parse\" \ caddr len dest -- caddr' len' \ *G Parses a string up to an unescaped '"', translating '\' \ ** escapes to characters much as C does. The \ ** translated string is a counted string at *\i{dest} \ ** The supported escapes (case sensitive) are: \ *D \a BEL (alert) \ *D \b BS (backspace) \ *D \e ESC (not in C99) \ *D \f FF (form feed) \ *D \l LF (ASCII 10) \ *D \m CR/LF pair - for HTML etc. \ *D \n newline - CRLF for Windows/DOS, LF for Unices \ *D \q double-quote \ *D \r CR (ASCII 13) \ *D \t HT (tab) \ *D \v VT \ *D \z NUL (ASCII 0) \ *D \" " \ *D \xAB Two char Hex numerical character value \ *D \\ backslash itself \ *D \ before any other character represents that character dup >r 0 swap c! \ zero destination begin \ -- caddr len ; R: -- dest dup while over c@ [char] " <> \ check for terminator while over c@ [char] \ = if \ deal with escapes 1 /string r@ addEscape else \ normal character over c@ r@ addchar 1 /string endif repeat then dup \ step over terminating " if 1 /string endif r> drop ; : readEscaped \ "string" -- caddr \ *G Parses an escaped string from the input stream according to \ ** the rules of *\fo{parse\"} above, returning the address \ ** of the translated counted string in *\fo{PAD}. source >in @ /string tuck \ -- len caddr len pad parse\" nip - >in +! pad ; EXTERNAL : S\" \ "string" -- caddr u \ *G As *\fo{S"}, but translates escaped characters using \ ** *\fo{parse\"} above. readEscaped count state @ if compile (s") $, then ; IMMEDIATE MODULE \s \ Test Cases \ ========== HEX : { ; immediate : -> cr .s RESET-STACKS [char] } parse type ; ( The same tests as for S" ) { : GC5 S\" XY" ; -> } { GC5 SWAP DROP -> 2 } { GC5 DROP DUP C@ SWAP CHAR+ C@ -> 58 59 } ( The following are inspired by the gForth test suite ) { S\" " SWAP DROP -> 0 } { S\" \a" SWAP C@ -> 1 07 } \ BEL Bell { S\" \b" SWAP C@ -> 1 08 } \ BS Backspace { S\" \e" SWAP C@ -> 1 1B } \ ESC Escape { S\" \f" SWAP C@ -> 1 0C } \ FF Formfeed { S\" \l" SWAP C@ -> 1 0A } \ LF Linefeed { S\" \q" SWAP C@ -> 1 22 } \ " Double Quote { S\" \r" SWAP C@ -> 1 0D } \ CR Carage Return { S\" \t" SWAP C@ -> 1 09 } \ TAB Horisontal Tab { S\" \v" SWAP C@ -> 1 0B } \ VT Virtical Tab { S\" \z" SWAP C@ -> 1 00 } \ NUL No Character { S\" \"" SWAP C@ -> 1 22 } \ " Double Quote { S\" \\" SWAP C@ -> 1 5C } \ \ Back Slash { S\" \n" 2DROP -> } \ System dependent { S\" \m" SWAP DUP C@ SWAP CHAR+ C@ -> 2 0D 0A } \ CR\LF pair { S\" \x1Fa" SWAP DUP C@ SWAP CHAR+ C@ -> 2 1F 61 } \ Specified Char { S\" S\\\" \\a\"" EVALUATE SWAP C@ -> 1 7 } decimal |
From: Rod O. <rod...@us...> - 2008-12-19 23:06:15
|
Update of /cvsroot/win32forth/win32forth/apps/Setup In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv19966 Modified Files: Setup.f Log Message: Rod: added \in-system-ok before some console words Index: Setup.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Setup/Setup.f,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Setup.f 19 Dec 2008 12:48:34 -0000 1.23 --- Setup.f 19 Dec 2008 23:05:47 -0000 1.24 *************** *** 38,42 **** FLOAD ..\..\src\Keyboard.f \ function and special key constants - \ the Setup starts here... --- 38,41 ---- *************** *** 66,70 **** base ! ; : setupinit ! 3 Show-Window cls ." Win32Forth " .version ." - Setup Program" cr cr --- 65,69 ---- base ! ; : setupinit ! \in-system-ok 3 Show-Window cls ." Win32Forth " .version ." - Setup Program" cr cr *************** *** 545,549 **** 2 PROC SetWindowText : setup ( -- ) \ Install win32forth ! show-console normal-console z" Win32Forth Setup" CONHNDL call SetWindowText drop --- 544,548 ---- 2 PROC SetWindowText : setup ( -- ) \ Install win32forth ! \in-system-ok show-console normal-console z" Win32Forth Setup" CONHNDL call SetWindowText drop |
From: Rod O. <rod...@us...> - 2008-12-19 22:38:49
|
Update of /cvsroot/win32forth/win32forth/src/console In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18193 Modified Files: Console1.f Console2.f ConsoleMenu.f ConsoleStatbar.f NewConsole.f Log Message: Rod: put some console words in-system and/or made internal. More words could be put in-system to make turnkeys smaller. Index: ConsoleStatbar.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/ConsoleStatbar.f,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ConsoleStatbar.f 19 Aug 2008 03:55:24 -0000 1.9 --- ConsoleStatbar.f 19 Dec 2008 22:38:41 -0000 1.10 *************** *** 10,14 **** ! \ INTERNAL \ ***************************************************************************** --- 10,14 ---- ! INTERNAL \ ***************************************************************************** *************** *** 109,112 **** --- 109,114 ---- \ ***************************************************************************** + in-system + : Update-Console-Statusbar ( -- ) \ update the status bar GetHandle: ConsoleStatusbar *************** *** 124,127 **** --- 126,131 ---- \ EXTERNAL + in-application + \ changed to use the reset-stack-chain \ January 22nd, 2004 - 13:53 dbu *************** *** 132,135 **** --- 136,140 ---- reset-stack-chain chain-add CONSOLE-STATUSBAR-RESET-STACKS + (( INTERNAL *************** *** 140,144 **** : Console-SetDisplayDepth ( n -- ) SetDisplayDepth: ConsoleStatusbar ; ! MODULE --- 145,149 ---- : Console-SetDisplayDepth ( n -- ) SetDisplayDepth: ConsoleStatusbar ; ! )) MODULE Index: NewConsole.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/NewConsole.f,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** NewConsole.f 17 Dec 2008 10:17:23 -0000 1.31 --- NewConsole.f 19 Dec 2008 22:38:41 -0000 1.32 *************** *** 32,35 **** --- 32,38 ---- CommandWindow cmd + INTERNAL + EXTERNAL + \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ *************** *** 183,187 **** INTERNAL ! EXTERNAL : c_type ( a n -- ) --- 186,190 ---- INTERNAL ! in-system : c_type ( a n -- ) *************** *** 284,288 **** : c_getrowoff ( -- n ) FirstVisibleRow: cmd ; ! :noname ( n -- ) Case --- 287,291 ---- : c_getrowoff ( -- n ) FirstVisibleRow: cmd ; ! IN-APPLICATION :noname ( n -- ) Case *************** *** 319,322 **** --- 322,326 ---- )) + IN-SYSTEM ' menukey-more is LogKeyStrokes *************** *** 360,365 **** ; ! forth-io-chain chain-add NewConsole ! :noname ( -- ) --- 364,368 ---- ; ! \in-system-ok forth-io-chain chain-add NewConsole :noname ( -- ) Index: ConsoleMenu.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/ConsoleMenu.f,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** ConsoleMenu.f 2 Sep 2008 07:01:23 -0000 1.21 --- ConsoleMenu.f 19 Dec 2008 22:38:41 -0000 1.22 *************** *** 249,257 **** @ repeat drop ! true havemenu! ZeroMenu: console-menu conhndl loadmenu: console-menu menuhandle: console-menu ! conhndl call SetMenu havemenu! ZeroMenu: console-popup conhndl loadmenu: console-popup ; --- 249,257 ---- @ repeat drop ! \ true havemenu! ZeroMenu: console-menu conhndl loadmenu: console-menu menuhandle: console-menu ! conhndl call SetMenu drop \ havemenu! ZeroMenu: console-popup conhndl loadmenu: console-popup ; *************** *** 260,265 **** : Menu-off ( -- ) \ turn off the console's menubar ! false havemenu! ! 0 conhndl call SetMenu 0= havemenu! ; --- 260,265 ---- : Menu-off ( -- ) \ turn off the console's menubar ! \ false havemenu! ! 0 conhndl call SetMenu drop \ 0= havemenu! ; Index: Console1.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/Console1.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Console1.f 17 Dec 2008 10:17:23 -0000 1.6 --- Console1.f 19 Dec 2008 22:38:41 -0000 1.7 *************** *** 30,33 **** --- 30,36 ---- \ sound stuff \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + + in-application + VARIABLE TONE_FREQ 700 TONE_FREQ ! VARIABLE TONE_DURA 50 TONE_DURA ! *************** *** 108,115 **** --- 111,127 ---- 8 value tab-size 8 value left-margin + + in-system + 4 value right-margin 0 value tab-margin 5 value tabs-max + + in-application + 0 value tabing? \ are we tabing, default to no + + in-system + 0 value first-line? \ is this the first line of a paragraph -8 value indent \ indent/outdent spaces *************** *** 148,151 **** --- 160,165 ---- 0tab ; + in-application + : TABING-ON ( -- ) true to tabing? ; *************** *** 157,160 **** --- 171,176 ---- synonym tabbing-on tabing-on + in-system + : CRTAB ( -- ) cr \ [cdo] because w32fconsole.dll was removed *************** *** 179,184 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 1 PROC GetKeyState ! : shiftmask ( -- mask ) 0 17 ( VK_CONTROL ) Call GetKeyState 32768 and \ if control is down --- 195,202 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + in-application + 1 PROC GetKeyState ! : shiftmask ( -- mask ) 0 17 ( VK_CONTROL ) Call GetKeyState 32768 and \ if control is down *************** *** 194,201 **** --- 212,223 ---- shiftmask control_mask and 0<> ; + in-system + 4 PROC SetWindowPos : set-conpos ( x y -- ) \ set the console position 2>r ( SWP_NOSIZE ) 1 0 0 2r> ( HWND_TOP ) 0 _conHndl call SetWindowPos drop ; + (( + in-application 0 value havemenu? *************** *** 203,206 **** --- 225,230 ---- to havemenu? ; + in-system + )) 1 PROC GetDC : conDC ( -- dc ) \ get the console device context *************** *** 241,244 **** --- 265,270 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + in-application + SYNONYM EKEY KEY ( -- u ) SYNONYM EKEY? KEY? ( -- flag ) Index: Console2.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/Console2.f,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Console2.f 2 Sep 2008 07:01:23 -0000 1.13 --- Console2.f 19 Dec 2008 22:38:41 -0000 1.14 *************** *** 22,29 **** --- 22,33 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + (( + in-system : minimize-console ( -- ) SW_SHOWMINIMIZED conhndl call ShowWindow drop ; + in-application + )) \ Make console the foreground window. Ignore error which will occur if we are \ running under Windows95 and we are already the foreground window. *************** *** 52,55 **** --- 56,61 ---- ['] SetActiveWindow (SetWindow) ; + in-system + : _foreground-console ( -- ) conhndl (SetForegroundWindow) ; *************** *** 64,67 **** --- 70,74 ---- ' _activate-console is activate-console + in-application 0 value mousex |
From: Rod O. <rod...@us...> - 2008-12-19 22:37:02
|
Update of /cvsroot/win32forth/win32forth/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18145 Modified Files: Primutil.f Log Message: Rod: put some console words in-system and/or made internal. More words could be put in-system to make turnkeys smaller. Index: Primutil.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Primutil.f,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** Primutil.f 17 Dec 2008 10:17:23 -0000 1.42 --- Primutil.f 19 Dec 2008 22:36:56 -0000 1.43 *************** *** 840,875 **** ['] k_bye IS bye ; : DosConsole ( -- ) \ switch to DOS console functions ! ['] NOOP IS CONSOLE ['] d_Init-Console IS INIT-CONSOLE ! ['] NOOP IS INIT-SCREEN ! ['] d_KEY IS KEY ! ['] d_KEY? IS KEY? ! ['] d_ACCEPT IS ACCEPT ! ['] DROP IS PUSHKEY ! ['] 2DROP IS "PUSHKEYS ! ['] NOOP IS CLS ! ['] d_EMIT IS EMIT ! ['] d_TYPE IS TYPE ! ['] d_CR IS CR ! ['] DROP IS ?CR ! ['] 2DROP IS GOTOXY ! ['] K_NOOP2 IS GETXY ! ['] 2DROP IS FGBG! ! ['] K_NOOP1 IS FG@ ! ['] K_NOOP1 IS BG@ ! ['] 2DROP IS SETCHARWH ! ['] K_NOOP2 IS CHARWH ! ['] DROP IS SET-CURSOR ! ['] K_NOOP1 IS GET-CURSOR ! ['] K_NOOP2 IS GETCOLROW ! ['] K_NOOP1 IS GETROWOFF ! ['] K_NOOP1 IS &THE-SCREEN \ reset BYE to default ( althought should have never changed) ['] k_bye IS bye ; \ defered i/o setting for various consoles : (NoConsoleBoot) ( -- ) NoConsoleIO ; ! : (DosConsoleBoot) ( -- ) DosConsole init-console drop ; --- 840,878 ---- ['] k_bye IS bye ; + in-system + : DosConsole ( -- ) \ switch to DOS console functions ! ['] NOOP IS CONSOLE ['] d_Init-Console IS INIT-CONSOLE ! ['] NOOP IS INIT-SCREEN ! ['] d_KEY IS KEY ! ['] d_KEY? IS KEY? ! ['] d_ACCEPT IS ACCEPT ! ['] DROP IS PUSHKEY ! ['] 2DROP IS "PUSHKEYS ! ['] NOOP IS CLS ! ['] d_EMIT IS EMIT ! ['] d_TYPE IS TYPE ! ['] d_CR IS CR ! ['] DROP IS ?CR ! ['] 2DROP IS GOTOXY ! ['] K_NOOP2 IS GETXY ! ['] 2DROP IS FGBG! ! ['] K_NOOP1 IS FG@ ! ['] K_NOOP1 IS BG@ ! ['] 2DROP IS SETCHARWH ! ['] K_NOOP2 IS CHARWH ! ['] DROP IS SET-CURSOR ! ['] K_NOOP1 IS GET-CURSOR ! ['] K_NOOP2 IS GETCOLROW ! ['] K_NOOP1 IS GETROWOFF ! ['] K_NOOP1 IS &THE-SCREEN \ reset BYE to default ( althought should have never changed) ['] k_bye IS bye ; + in-application \ defered i/o setting for various consoles : (NoConsoleBoot) ( -- ) NoConsoleIO ; ! in-system : (DosConsoleBoot) ( -- ) DosConsole init-console drop ; |
From: Dirk B. <db...@us...> - 2008-12-19 13:36:35
|
Update of /cvsroot/win32forth/win32forth/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv23842 Modified Files: GENERIC.F Log Message: Fixed some broken links within the HTML-Docs. Index: GENERIC.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/GENERIC.F,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** GENERIC.F 27 Nov 2008 17:41:37 -0000 1.23 --- GENERIC.F 19 Dec 2008 13:36:23 -0000 1.24 *************** *** 11,17 **** \ *W <ul> ! \ *W <li><a href="Window.htm">Window</a> Adds a device context and the ablility to display text and graphics output.</li> ! \ *W <li><a href="Dialog.htm">Dialog</a> Support for dialog boxes</li> ! \ *W <li><a href="Control.htm">Control</a> Adds support for the standard Win32 controls with subclassing.</li> \ *W </ul> --- 11,17 ---- \ *W <ul> ! \ *W <li><a href="clas-Window.htm">Window</a> Adds a device context and the ablility to display text and graphics output.</li> ! \ *W <li><a href="clas-Dialog.htm">Dialog</a> Support for dialog boxes</li> ! \ *W <li><a href="clas-Control.htm">Control</a> Adds support for the standard Win32 controls with subclassing.</li> \ *W </ul> |
From: Dirk B. <db...@us...> - 2008-12-19 12:48:42
|
Update of /cvsroot/win32forth/win32forth In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv21442 Modified Files: setup.exe Log Message: Removed some Options from the Setup that are not needed any more. And made it look a little better with the new console. Index: setup.exe =================================================================== RCS file: /cvsroot/win32forth/win32forth/setup.exe,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 Binary files /tmp/cvsMKEZP9 and /tmp/cvseeQ1Gf differ |
From: Dirk B. <db...@us...> - 2008-12-19 12:48:41
|
Update of /cvsroot/win32forth/win32forth/apps/Setup In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv21442/apps/Setup Modified Files: Setup.f Log Message: Removed some Options from the Setup that are not needed any more. And made it look a little better with the new console. Index: Setup.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Setup/Setup.f,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Setup.f 2 Sep 2008 06:38:40 -0000 1.22 --- Setup.f 19 Dec 2008 12:48:34 -0000 1.23 *************** *** 59,67 **** SystemDirectory$ c! ; \ make counted string : setupinit 3 Show-Window cls ! ." Win32Forth" .version cr ! ." Setup Program" cr cr &forthdir ?-\ --- 59,72 ---- SystemDirectory$ c! ; \ make counted string + : .version ( -- ) + base @ decimal + ." Version: " + version# ((version)) type + ." Build: " build# . + base ! ; : setupinit 3 Show-Window cls ! ." Win32Forth " .version ." - Setup Program" cr cr &forthdir ?-\ *************** *** 120,145 **** ." To Install Win32Forth Press one of these Keys" cr dashline cr ! ." I (Re)Install the entire Win32Forth system from scratch." cr cr ." M Same as install but, you can change the size of the" cr ! ." Application-, System- and Codespace." cr cr ! ." K Meta compile a new Kernel (builds fkernel.exe) only." cr cr ! ." E Extend the kernel (builds a new win32for.exe)" cr cr ! ." B Rebuild win32for.exe (same as 'K' with setsize and 'E')" cr cr ! ." W Rebuild WinEd." cr cr ! ." H Rebuild the Hyper link indices used by WinEd, Project Manager" cr ! ." and the Win32Forth IDE." cr cr ! ." F Rebuild ForthForm." cr cr ! ." P Rebuild Project Manager." cr cr ! ." G Rebuild Win32forth IDE." cr cr ! ." A Rebuild sample applications (Player4, Solipon2, Sudoku," cr ! ." PlayVirginRadio and PictureViewer)" cr cr ! ." T Rebuild Help program." cr cr ! ." U Rebuild Help words database (this is not done by default)." cr cr ! ." R Rebuild Help dexh HTML files (this is not done by default)." cr cr ! ." D Copy Win32Forth dll files (w32fConsole.dll, w32fScintilla.dll," cr ." wincon.dll and Zip32.dll) into the Windows system folder:" cr ! ." '" SystemDirectory$ count type ." ' (this is not done by default)." cr cr ! ." X Exit setup." cr cr ! cr true then ; --- 125,146 ---- ." To Install Win32Forth Press one of these Keys" cr dashline cr ! ." I (Re)Install the entire Win32Forth system from scratch." cr ." M Same as install but, you can change the size of the" cr ! ." Application-, System- and Codespace." cr ! ." K Meta compile a new Kernel (builds fkernel.exe) only." cr ! ." E Extend the kernel (builds a new win32for.exe)" cr ! ." B Rebuild win32for.exe (same as 'K' with setsize and 'E')" cr ! ." W Rebuild WinEd." cr ! ." G Rebuild Win32forth IDE." cr ! ." A Rebuild sample applications" cr ! ." H Rebuild the Hyper link indices used by WinEd and the Win32Forth IDE." cr ! ." T Rebuild Help program." cr ! ." U Rebuild Help words database (this is not done by default)." cr ! ." R Rebuild Help dexh HTML files (this is not done by default)." cr ! ." D Copy Win32Forth dll files (w32fScintilla.dll," cr ." wincon.dll and Zip32.dll) into the Windows system folder:" cr ! ." '" SystemDirectory$ count type ." ' (this is not done by default)." cr ! ." X Exit setup." ! true then ; *************** *** 271,301 **** ; - : buildforthform - cr - cr ." *** ForthForm has been moved to the IDE *** " - cr - \ ." -- ForthForm" cr - \ c" WIN32FOR.EXE chdir apps\forthform fload forthform.f bye" procexec - \ c" FORTHFORM.EXE" filecheck - ; - - : buildproject - cr - cr ." *** ProjectManager has been moved to the IDE *** " - cr - \ ." -- ProjectManager" cr - \ c" WIN32FOR.EXE chdir apps\ProMgr fload ProjectManager.f bye" procexec - \ c" PROJECT.EXE" filecheck - ; - - : buildscintilla - cr - cr ." *** SciEdit has been moved to the IDE *** " - cr - \ ." -- SciEdit" cr - \ c" WIN32FOR.EXE chdir apps\SciEdit fload Main.f bye" procexec - \ c" SciEditMdi.EXE" filecheck - ; - : buildide ." -- Win32Forth IDE" cr --- 272,275 ---- *************** *** 354,358 **** : copywindowdll ( -- ) \ copy the win32forth dll's to the windows system folder - c" w32fConsole.dll" copydll c" w32fScintilla.dll" copydll c" wincon.dll" copydll --- 328,331 ---- *************** *** 369,375 **** if buildindex \ build the index files for WinEd then - buildforthform \ build ForthForm - buildproject \ build ProjectManager - buildscintilla \ build SciEdit buildsamples \ build sample applications buildhelp \ build help program (no database building there) --- 342,345 ---- *************** *** 437,443 **** buildwined buildindex - buildforthform - buildproject - buildscintilla \ build SciEdit buildsamples \ build sample applications buildide \ build Win32Forth IDE --- 407,410 ---- *************** *** 505,544 **** ; - \ ForthForm - \ new September 16th, 2003 dbu - : forthform - cls cr - ." ForthForm requested" cr - dashline - ." Rebuilding ForthForm" cr - checkcont - buildforthform - endedok - ; - - \ ProjectManager - \ Sonntag, May 30 2004 - 9:50 dbu - : project - cls cr - ." ProjectManager requested" cr - dashline - ." Rebuilding ProjectManager" cr - checkcont - buildproject - endedok - ; - - \ Scintilla Editor - \ new June 26th, 2004 - 6:50 aws - : scintilla - cls cr - ." Scintilla Editor requested" cr - dashline - ." Rebuilding Scintilla Editor" cr - checkcont - buildscintilla \ build SciEdit - endedok - ; - \ Win32ForthIDE Editor \ Mittwoch, Juni 07 2006 - 18:01 dbu --- 472,475 ---- *************** *** 631,636 **** 'W' of wined endof 'H' of index endof - 'F' of forthform endof - 'P' of project endof 'G' of ide endof 'A' of samples endof --- 562,565 ---- *************** *** 645,649 **** \ 'Hidden' command's - 'S' of scintilla endof 'L' of create-links endof 'C' of true install-silent endof --- 574,577 ---- |