See changelog 20000301 14:10

This commit is contained in:
Luiz Rafael Culik
2000-03-01 17:10:21 +00:00
parent ba890737e6
commit 01c90d7d2d
15 changed files with 927 additions and 457 deletions

View File

@@ -1,3 +1,22 @@
20000301-14:10 GMT-3 Luiz Rafael Culik <culik@sl.conex.net>
*doc/en/ARRAY.TXT
*added Copyright header
*small changes to the docs
*doc/en/FILE.TXT
*small changes to the docs
*source/tools/rtf.prg
*source/tools/os2.prg
*source/tools/html.prg
*Some changes to generate a better output
*utils/hbdoc/hbdoc.prg
*Changes to reflect the new file outputs
*utils/hbdoc/genrtf.prg
*utils/hbdoc/genhtm.prg
*utils/hbdoc/genos2.prg
*Changes to reflect the changes of the classes
*utils/hbdoc/hrb.rsp
*utils/hbdoc/hrbtools.rsp
*Change to use the new docs dir
20000301-14:34 GMT+1 Victor Szakats <info@szelvesz.hu>
* source/rtl/console.c
source/rtl/oldclear.c

View File

@@ -9,6 +9,9 @@
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentation for: ASORT()
*
* Copyright 1999 Luiz Rafael Culik <culik@sl.conex.net>
* Documentation for: ARRAY(),AADD(),ACLONE(),ACOPY(),ASIZE()
* ATAIL(),AINS(),ADEL(),AFILL(),ASCAN(),AEVAL()
* See doc/license.txt for licensing terms.
*
*/
@@ -25,7 +28,7 @@
* $ARGUMENTS$
* <nElements> is the number of elements in the specified dimension.
* $RETURNS$
* ARRAY() returns an array of specified dimensions.
* <aArray> an array of specified dimensions.
* $DESCRIPTION$
* This function returns an uninitialized array with the length of
* <nElements>. Nested arrays are uninitialized within the same array
@@ -69,8 +72,8 @@
*
* <xValue> Element to add to array <aArray>
* $RETURNS$
* The value of <xValue> if specified, otherwise this function
* returns a NIL value.
* <Value> if specified <xValue>,<xValue> will return , otherwise
* this function returns a NIL value.
* $DESCRIPTION$
* This function dynamically increases the length of the array
* named <aArray> by one element and stores the value of <xValue> to
@@ -106,7 +109,7 @@
*
* <nLen> Numeric value representing the new size of <aArray>
* $RETURNS$
* ASIZE() returns an array pointer reference to <aTarget>.
* <aTarget> an array pointer reference to <aTarget>.
* $DESCRIPTION$
* This function will dynamically increase or decrease the size
* of <aArray> by adjusting the length of the array to <nLen> subscript
@@ -143,7 +146,7 @@
* $ARGUMENTS$
* <aArray> is the array.
* $RETURNS$
* Atail() return the expression of the last element in the array.
* <Element> the expression of the last element in the array.
* $DESCRIPTION$
* This function return the value of the last element in the array named
* <aArray>. This function does not alter the size of the array or any of
@@ -176,7 +179,7 @@
*
* <nPos> Subscript position in <aArray>
* $RETURNS$
* AINS() returns a array pointer reference to <aTarget>.
* <aTarget> an array pointer reference.
* $DESCRIPTION$
* This function inserts a NIL value in the array named <aArray>
* at the <nPos>th position.
@@ -215,7 +218,7 @@
*
* <nPos> Subscript of the element to be removed.
* $RETURNS$
* ADEL() Returns an array pointer reference to <aTarget>.
* <aTarget> an array pointer reference.
* $DESCRIPTION$
* This function deletes the element found at <nPos> subscript
* position in the array <aArray>. All elements in the array
@@ -259,7 +262,7 @@
*
* <nCount> Number of subscript to be filled
* $RETURNS$
* AFILL() returns an array pointer to <aTarget>.
* <aTarget> an array pointer.
* $DESCRIPTION$
* This function will fill each element of an array named <aArray> with
* the value <xValue>. If specified, <nStart> denotes the beginning
@@ -360,7 +363,7 @@
*
* <nCount> The number of elements to process.
* $RETURNS$
* AEVAL() returns an array pointer reference.
* <aArray> an array pointer reference.
* $DESCRIPTION$
* This function will evaluate and process the subscript elements
* in <aArray>. A code block passed as <bBlock> defines the
@@ -410,7 +413,7 @@
* <nTargetPos> the starting subscript position in <aTarget> to copy
* elements to.
* $RETURNS$
* ACOPY() returns an array pointer reference
* <aTarget> an array pointer reference
* $DESCRIPTION$
* This function copies array elements from <aSource> to <aTarget>.
* <nStart> is the beginning element to be copied from <aSource>; the
@@ -459,7 +462,7 @@
* $ARGUMENTS$
* <aSource> Name of the array to be cloned.
* $RETURNS$
* ACLONE() A new array pointer reference complete with nested array
* <aDuplicate> A new array pointer reference complete with nested array
* values.
* $DESCRIPTION$
* This function makes a complete copy of the array expressed as
@@ -508,7 +511,7 @@
* {| x, y | x < y }. The code block should accept two parameters and
* must return .T. if the sort is in order, .F. if not.
* $RETURNS$
* ASORT() return reference to the now sorted <aArray> or NIL if the
* <aArray> reference to the now sorted <aArray> or NIL if the
* passed <aArray> is not an array.
* $DESCRIPTION$
* ASORT() sort all or part of a given array. If <bSort> is omitted,

View File

@@ -51,7 +51,7 @@
* accessibility of the file in a network environment.
*
* $RETURNS$
* FOPEN() returns a DOS file handle
* <nHandle> a DOS file handle
* $DESCRIPTION$
* This function opens a file expressed as <cFile> and returns a DOS
* file handle to be used with other low-level file functions.The
@@ -165,7 +165,7 @@
* <cBufferVar> Character expression passed by reference
* <nBytes> Number of bytes to read.
* $RETURNS$
* FREAD() returns the number of bytes successfyly read from the file
* <nBytes> the number of bytes successfyly read from the file
* <nHandle>
* $DESCRIPTION$
* This function reads the characters from a DOS file whose file handle
@@ -219,7 +219,7 @@
* <cBuffer> Character expression to be written.
* <nBytes> The number of bytes to write.
* $RETURNS$
* FWRITE() returns the number of bytes successfully written.
* <nBytesWritten> the number of bytes successfully written.
* $DESCRIPTION$
* This function writes the contents of <cBuffer> to the file designa-
* ted by its file handle <nHandle>. If used, <nBytes> is the number of
@@ -411,7 +411,7 @@
* <cOldFile> Old filenarne to he changed
* <cNewFile> New filename
* $RETURNS$
* FRENAME() returns If sucessful, a 0 will he returned otherwise,
* <nSuccess> If sucessful, a 0 will he returned otherwise,
* a -1 will be returned.
* $DESCRIPTION$
* This function renames the specified file <cOldFile> to <cNewFile>.
@@ -463,7 +463,7 @@
* <nOffset> The number of bytes to move.
* <nOrigin> The relative position in the file.
* $RETURNS$
* FSEEK() return the current position relative to begin-of-file
* <nPosition> the current position relative to begin-of-file
* $DESCRIPTION$
* This function sets the file pointer in the file whose DOS file
* handle is <nHandle> and moves the file pointer by <expN2> bytes
@@ -531,7 +531,8 @@
* $ARGUMENTS$
* <cFileSpec> Dos Skeleton or file name to find.
* $RETURNS$
* FILE() return a logical true (.T.) or logical false (.F.).
* <lExists> a logical true (.T.) if the file exists or logical
* false (.F.).
* $DESCRIPTION$
* This function return a logical true (.T.) if the given filename
* <cFileSpec> exist.
@@ -571,7 +572,7 @@
*
* <nBytes> Number of bytes to read.
* $RETURNS$
* FREADSTR() return an characted expression
* <cString> an characted expression
* $DESCRIPTION$
* This function returns a character string of <nBytes> bytes from a
* file whose DOS file handle is <nHandle>.

View File

@@ -63,6 +63,6 @@
* Could affect Adir() and Dir if they were modified to take advantage
* of it - currently, they will return long names if the os supports it.
*
** $END$
* $END$
*/

View File

@@ -34,9 +34,9 @@
*/
#include 'hbclass.ch'
#include 'common.ch'
#define CRLF HB_OSNewLine()
Static nX:=0
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
*+ Class THTML
@@ -58,13 +58,16 @@ CLASS THTML
ENDCLASS
METHOD New( cFile ) CLASS THTML
If Nx >0
FCLOSE(NX)
ENDIF
IF VALTYPE( cFile ) <> NIL .AND. VALTYPE( cFile ) == "C"
Self:cFile := LOWER( cFile )
Self:nHandle := FCREATE( Self:cFile )
ENDIF
FWRITE( Self:nHandle, "<HEAD>" + CRLF )
nX := Self:nHandle
FWRITE( Self:nHandle, "<BODY>" + CRLF )
RETURN Self
@@ -87,11 +90,20 @@ METHOD WriteText( cPar ) CLASS THTML
RETURN Self
METHOD WriteParBold( cPar ) CLASS THTML
METHOD WriteParBold( cPar,lEndDl,lPar ) CLASS THTML
DEFAULT lEnddl to .T.
DEFAULT lPar to .T.
If lEndDl .and. lPar
FWRITE( Self:nHandle,"</P></dd>"+CRLF+ "</DL>"+CRLF+"<DL>"+CRLF+"<dt><b>" + Alltrim(cPar) + '</b></dt>' + CRLF )
ELSEif !lPar .and. !lEnddl
FWRITE( Self:nHandle,'<DL>'+CRLF+"<dt><b>" + Alltrim(cPar) + '</b></dt>' + CRLF )
ELSEif !lPar .and. lEnddl
FWRITE( Self:nHandle,"</PRE></dd>"+CRLF+"</DL>"+CRLF+ "<DL>"+CRLF+"<dt><b>" + Alltrim(cPar) + '</b></dt>' + CRLF )
ELSEif lPar .and. !lEnddl
FWRITE( Self:nHandle,"</P></dd>"+CRLF+"<DL>"+CRLF+"<dt><b>" + Alltrim(cPar) + '</b></dt>' + CRLF )
FWRITE( Self:nHandle, "</DL>"+CRLF+"<DL>"+CRLF+"<dt><b>" + Alltrim(cPar) + '</b></dt>' + CRLF )
RETURN Self
ENDIF
RETURN Self
METHOD CLOSE() CLASS THTML
@@ -118,5 +130,6 @@ METHOD WriteLink( cLink ,cName ) CLASS THTML
FWRITE( Self:nHandle, "<LI><a href=" + Lower(cTemp) + ">" + cLink + "</a></LI>" + CRLF )
RETURN Self

View File

@@ -36,7 +36,7 @@
#define CRLF HB_OSNewLine()
#include 'hbclass.ch'
#include 'common.ch'
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
*+ Class TRTF
@@ -50,11 +50,16 @@ CLASS TRTF
METHOD WriteHeader()
METHOD New( cFile )
METHOD WritePar( cPar )
METHOD WriteParText( cPar )
METHOD WriteLink( clink )
METHOD WriteJumpLink( clink )
METHOD Close()
METHOD WriteParBold( cPar )
METHOD WriteParBold( cPar ,lCenter)
METHOD WriteParBoldText( cPar ,cText)
METHOD WriteTitle( cTitle, cTopic )
METHOD WriteJumpTitle( cTitle, cTopic )
METHOD EndPar()
METHOD EndPage()
ENDCLASS
METHOD NEW( cFile ) CLASS TRTF
@@ -66,7 +71,7 @@ RETURN Self
METHOD WriteHeader() CLASS TRTF
LOCAL cHeader := '{\rtf1\ansi\pard\plain\fs20' + CRLF + ;
LOCAL cHeader := '{\rtf1\ansi\pard\fs20' + CRLF + ;
'\deff5{\fonttbl' + CRLF + ;
'{\f0\froman Tms Rmn;}' + CRLF + ;
'{\f1\fdecor Symbol;}' + CRLF + ;
@@ -112,18 +117,36 @@ RETURN Self
METHOD WritePar( cPar ) CLASS TRTF
cPar:=StrTran(cPar,"{","\{")
cPar:=StrTran(cPar,"}","\}")
FWRITE( Self:nHandle, '\pard{\cf1\fs30 ' + HB_OEMTOANSI(" ")+ HB_OEMTOANSI(cPar ))
FWRITE( Self:nHandle, '\par \pard\cf1\f6\fs20' + HB_OEMTOANSI(cPar )+CRLF)
RETURN Self
METHOD WriteParText( cPar ) CLASS TRTF
cPar:=StrTran(cPar,"{","\{")
cPar:=StrTran(cPar,"}","\}")
FWRITE( Self:nHandle, HB_OEMTOANSI(cPar )+CRLF)
RETURN Self
METHOD EndPar() CLASS TRTF
FWRITE( Self:nHandle, ' }\par' + CRLF )
FWRITE( Self:nHandle, '\par' + CRLF )
RETURN Self
METHOD WriteParBold( cPar ) CLASS TRTF
METHOD WriteParBold( cPar,lCenter ) CLASS TRTF
DEFAULT lCenter to .F.
cPar:=StrTran(cPar,"{","\{")
cPar:=StrTran(cPar,"}","\}")
if lCenter
FWRITE( Self:nHandle, '\par \pard\qc\cf1\f6\fs30\i\b ' + ALLTRIM(HB_OEMTOANSI( cPar )) + CRLF )
else
FWRITE( Self:nHandle, '\par \pard\cf1\f6\fs30\i\b ' + ALLTRIM(HB_OEMTOANSI( cPar )) + CRLF )
Endif
RETURN Self
METHOD WriteParBoldText( cPar,cText ) CLASS TRTF
cPar:=StrTran(cPar,"{","\{")
cPar:=StrTran(cPar,"}","\}")
FWRITE( Self:nHandle, '\pard{\plain\cf1\f2\fs30\i\b\qc ' + ALLTRIM(HB_OEMTOANSI( cPar )) + ' }\par' + CRLF )
cText:=StrTran(cText,"{","\{")
cText:=StrTran(cText,"}","\}")
FWRITE( Self:nHandle, '\par \pard\cf1\f6\fs20\i\b ' + ALLTRIM(HB_OEMTOANSI( cPar )) + ' \b\cf1\f6\fs20\i ' +ALLTRIM(HB_OEMTOANSI(cText)) + CRLF )
RETURN Self
METHOD WriteTitle( cTitle, cTopic ) CLASS TRTF
@@ -143,10 +166,37 @@ METHOD WriteTitle( cTitle, cTopic ) CLASS TRTF
cTopic := ALLTRIM( HB_OEMTOANSI(cTopic ))
cWrite := '{\f2' + CRLF + ;
' #{\footnote \pard\plain \fs20 # ' + "IDH_"+cTemp + ' }' + CRLF + ;
' ${\footnote \pard\plain \fs20 $ ' + ALLTRIM( cTopic ) + ' }' + CRLF + ;
' K{\footnote \pard\plain \fs20 K ' + ALLTRIM( cTopic ) + ' }' + CRLF + ;
cWrite := '{\f6' + CRLF + ;
' #{\footnote \pard\fs20 # ' + "IDH_"+cTemp + ' }' + CRLF + ;
' ${\footnote \pard\fs20 $ ' + ALLTRIM( cTopic ) + ' }' + CRLF + ;
' K{\footnote \pard\fs20 K ' + ALLTRIM( cTopic ) + ' }' + CRLF + ;
'}' + CRLF
FWRITE( Self:nHandle, cWrite )
FWRITE( Self:nHandle, '\pard\qc\cf1\f6\fs30\i\b ' + ALLTRIM(HB_OEMTOANSI( cTopic )) + CRLF )
RETURN Self
METHOD WriteJumpTitle( cTitle, cTopic ) CLASS TRTF
LOCAL cTemp
LOCAL nPos
LOCAL cWrite
nPos := AT( "()", cTitle )
IF nPos > 0
cTemp := ALLTRIM( HB_OEMTOANSI(STRTRAN( cTitle, "()", "xx" ) ))
ELSE
cTemp := HB_OEMTOANSI(ALLTRIM( cTitle ))
cTemp :=STRTRAN( cTemp,"@", "x" )
ENDIF
cTopic := ALLTRIM( HB_OEMTOANSI(cTopic ))
cWrite := '{\f6' + CRLF + ;
' #{\footnote \pard\fs20 # ' + "IDH_"+cTemp + ' }' + CRLF + ;
' ${\footnote \pard\fs20 $ ' + ALLTRIM( cTopic ) + ' }' + CRLF + ;
'}' + CRLF
FWRITE( Self:nHandle, cWrite )
@@ -154,12 +204,14 @@ METHOD WriteTitle( cTitle, cTopic ) CLASS TRTF
Self:WriteParBold( cTopic )
RETURN Self
METHOD EndPage() CLASS TRTF
FWRITE( Self:nHandle,"\par "+CRLF+ '\page' + CRLF )
Return Self
METHOD CLOSE() CLASS TRTF
FWRITE( Self:nHandle, '\page' + CRLF )
FWRITE( Self:nHandle, '}' + CRLF )
// FWRITE( Self:nHandle, '}' + CRLF )
FCLOSE( Self:nHandle )
@@ -167,7 +219,12 @@ RETURN Self
METHOD WriteLink( cLink ) CLASS TRTF
FWRITE( Self:nHandle, '\pard{\cf1\fs30 {\f2\uldb ' + ALLTRIM( HB_OEMTOANSI(cLink) ) + '}{\v\f2 ' + "IDH_"+IF(AT( "()",cLink)>0 , ALLTRIM( HB_OEMTOANSI(STRTRAN( cLink, "()", "xx" ) )),ALLTRIM( HB_OEMTOANSI(STRTRAN( cLink, "@", "x" )) )) + '} }\par' + CRLF )
FWRITE( Self:nHandle, '\par \pard\cf1\fs20 {\f6\uldb '+ ALLTRIM( HB_OEMTOANSI(cLink) ) + '}{\v\f6 ' + "IDH_"+IF(AT( "()",cLink)>0 , ALLTRIM( HB_OEMTOANSI(STRTRAN( cLink, "()", "xx" ) )),ALLTRIM( HB_OEMTOANSI(STRTRAN( cLink, "@", "x" )) )) + '}' + CRLF )
RETURN Self
METHOD WriteJumpLink( cLink,cName,cText ) CLASS TRTF
FWRITE( Self:nHandle, '\par \pard\cf1\fs20 {\f6\ul '+ ALLTRIM( HB_OEMTOANSI(cName) ) + '}{\v\f6 ' + "IDH_"+IF(AT( "()",cLink)>0 , ALLTRIM( HB_OEMTOANSI(STRTRAN( cLink, "()", "xx" ) )),ALLTRIM( HB_OEMTOANSI(STRTRAN( cLink, "@", "x" )) )) + '}'+cText+ CRLF )
RETURN Self

View File

@@ -31,3 +31,5 @@ int _GT_Internal_StringAsInt(char *String, int Start, int End)
}
return(Value);
}
\page
}

View File

@@ -135,3 +135,4 @@ METHOD WriteLink( cLink ) CLASS TTROFF
FWRITE( Self:nHandle, ALLTRIM( cLink ) +CRLF)
RETURN Self

View File

@@ -1,15 +1,19 @@
!name: Harbour build 31a reference Guide
!credits: Harbour (c) http://www.harbour-project.org
2000/01/18 build By Luiz Rafael Culik
2000/02/28 build By Luiz Rafael Culik
Functions Documented by:
Chen Kedem, Luiz Rafael Culik
Chen Kedem, Luiz Rafael Culik,Brian Hays
!menu: Reference
Functions A-M funcam.ngo
Functions N-_ funcn_.ngo
Command comm.ngo
Tools Tools.ngo
OOP Commands oopcom.ngo
!menu: Harbour
Compiler Options Compil~1.ngo
GNU License gnulic~1.ngo
GNU License P2 gnulic~2.ngo
License license.ngo
Readme overview.ngo
Harbour Extension harbou~1.ngo

View File

@@ -81,12 +81,15 @@ FUNCTION ProcessWww()
#define D_ONELINE 7
#define D_STATUS 8
#define D_EXAMPLE 9
#define D_DATALINK 10
#define D_METHODLINK 11
LOCAL i
LOCAL j
LOCAL nFiles := LEN( aDirList )
LOCAL nCommentLen
LOCAL lEof
LOCAL lDoc
LOCAL lClassDoc
LOCAL cBuffer
LOCAL nEnd
LOCAL nCount
@@ -102,37 +105,54 @@ FUNCTION ProcessWww()
LOCAL cTemp
LOCAL cChar
LOCAL nPos
LOCAL lFirstArg := .T.
LOCAL lAddEndPreTag := .T.
LOCAL lFirstSintax := .T.
LOCAL lAddEndPreTag := .F.
LOCAL lEndDesc := .F.
LOCAL lEndArgs :=.F.
LOCAL lEndSyntax := .F.
LOCAL lEndReturns := .F.
LOCAL lEndData := .F.
LOCAL lDataLink
LOCAL lBlankLine := .F. // Blank line encountered and sent out
LOCAL lAddBlank := .F. // Need to add a blank line if next line is not blank
LOCAL oHtm
LOCAL nReadHandle
LOCAL cDoc := DELIM + "DOC" + DELIM // DOC keyword
LOCAL cEnd := DELIM + "END" + DELIM // END keyword
LOCAL cFunc := DELIM + "FUNCNAME" + DELIM // FUNCNAME keyword
LOCAL cCat := DELIM + "CATEGORY" + DELIM // CATEGORY keyword
LOCAL cOne := DELIM + "ONELINER" + DELIM // ONELINER keyword
LOCAL cSyn := DELIM + "SYNTAX" + DELIM // SYNTAX keyword
LOCAL cArg := DELIM + "ARGUMENTS" + DELIM // ARGUMENTS keyword
LOCAL cRet := DELIM + "RETURNS" + DELIM // RETURNS keyword
LOCAL cDesc := DELIM + "DESCRIPTION" + DELIM // DESCRIPTION keyword
LOCAL cExam := DELIM + "EXAMPLES" + DELIM // EXAMPLES keyword
LOCAL cSee := DELIM + "SEEALSO" + DELIM // SEEALSO keyword
LOCAL cInc := DELIM + "INCLUDE" + DELIM // INCLUDE keyword
LOCAL cComm := DELIM + "COMMANDNAME" + DELIM // COMMAND keyword
LOCAL cCompl := DELIM + "COMPLIANCE" + DELIM
LOCAL cTest := DELIM + 'TESTS' + DELIM
LOCAL cStatus := DELIM + 'STATUS' + DELIM
LOCAL cPlat := DELIM + 'PLATFORMS' + DELIM
LOCAL cFiles := DELIM + 'FILES' + DELIM
LOCAL cSubCode := DELIM + 'SUBCODE' + DELIM
LOCAL cFunction := DELIM + 'FUNCTION' +DELIM
LOCAL lEndConstru := .F.
LOCAL lFirstPass:= .T.
LOCAL lFirstArg := .T.
LOCAL lData := .F.
LOCAL lEndDataLink := .F.
LOCAL lEndMethodLink := .F.
LOCAL lMethod := .F.
LOCAL cDoc := DELIM + "DOC" + DELIM // DOC keyword
LOCAL cEnd := DELIM + "END" + DELIM // END keyword
LOCAL cFunc := DELIM + "FUNCNAME" + DELIM // FUNCNAME keyword
LOCAL cCat := DELIM + "CATEGORY" + DELIM // CATEGORY keyword
LOCAL cOne := DELIM + "ONELINER" + DELIM // ONELINER keyword
LOCAL cSyn := DELIM + "SYNTAX" + DELIM // SYNTAX keyword
LOCAL cArg := DELIM + "ARGUMENTS" + DELIM // ARGUMENTS keyword
LOCAL cRet := DELIM + "RETURNS" + DELIM // RETURNS keyword
LOCAL cDesc := DELIM + "DESCRIPTION" + DELIM // DESCRIPTION keyword
LOCAL cExam := DELIM + "EXAMPLES" + DELIM // EXAMPLES keyword
LOCAL cSee := DELIM + "SEEALSO" + DELIM // SEEALSO keyword
LOCAL cInc := DELIM + "INCLUDE" + DELIM // INCLUDE keyword
LOCAL cComm := DELIM + "COMMANDNAME" + DELIM // COMMAND keyword
LOCAL cCompl := DELIM + "COMPLIANCE" + DELIM
LOCAL cTest := DELIM + 'TESTS' + DELIM
LOCAL cStatus := DELIM + 'STATUS' + DELIM
LOCAL cPlat := DELIM + 'PLATFORMS' + DELIM
LOCAL cFiles := DELIM + 'FILES' + DELIM
LOCAL cSubCode := DELIM + 'SUBCODE' + DELIM
LOCAL cFunction := DELIM + 'FUNCTION' +DELIM
LOCAL cConstruct := DELIM + 'CONSTRUCTOR' + DELIM
LOCAL cDatalink := DELIM + 'DATALINK' + DELIM
LOCAL cDatanolink := DELIM + 'DATANOLINK' + DELIM
LOCAL cMethodslink := DELIM + 'METHODSLINK' + DELIM
LOCAL cMethodsNolink := DELIM + 'METHODSNOLINK' + DELIM
LOCAL cData := DELIM +"DATA"+ DELIM
LOCAL cMethod := DELIM +'METHOD' +DELIM
LOCAL cClassDoc := DELIM+ "CLASSDOC" + DELIM
//
// Entry Point
//
@@ -141,6 +161,8 @@ FUNCTION ProcessWww()
@ MODULELINE, 20 SAY "Documenting: "
// loop through all of the files
lFirstArg:=.T.
lFirstPass:=.T.
lFirstSintax:=.T.
FOR i := 1 TO nFiles
// Open file for input
@@ -162,6 +184,7 @@ FUNCTION ProcessWww()
ENDIF
lEof := .F.
lDoc := .F.
lClassDoc:= .F.
// First find the author
DO WHILE .NOT. lEof
@@ -176,7 +199,7 @@ FUNCTION ProcessWww()
// check to see if we are in doc mode or getting out of doc mode
IF AT( cDoc, cBuffer ) > 0
IF lDoc
IF lDoc
write_error( cDoc + " encountered during extraction of Doc" ;
+ " at line" + STR( nLinecnt, 5, 0 ),,,, aDirList[ i, F_NAME ] )
ENDIF
@@ -186,8 +209,20 @@ FUNCTION ProcessWww()
nLineCnt ++
cCategory := cFuncName := cSeeAlso := ""
nMode := D_IGNORE
ELSEIF AT( cClassDoc, cBuffer ) > 0
IF lClassDoc
write_error( cDoc + " encountered during extraction of Doc" ;
+ " at line" + STR( nLinecnt, 5, 0 ),,,, aDirList[ i, F_NAME ] )
ENDIF
lClassDoc := .T.
cBuffer := TRIM( SUBSTR( ReadLN( @lEof ), ;
nCommentLen ) )
nLineCnt ++
cCategory := cFuncName := cSeeAlso := ""
nMode := D_IGNORE
ELSEIF AT( cEnd, cBuffer ) > 0
IF .NOT. lDoc
IF .NOT. lDoc .and. !lClassDoc
write_error( cEnd + " encountered outside of Doc area at line" ;
+ STR( nLinecnt, 5, 0 ),,,, aDirList[ i, F_NAME ] )
ELSE
@@ -203,27 +238,53 @@ FUNCTION ProcessWww()
ENDIF
AADD( aDocInfo, { cCategory, cFuncName, cOneLine, cFileName } )
// Now close down this little piece
lDoc := .F.
IF .NOT. EMPTY( cSeeAlso )
oHtm:WriteParBold( "See Also " )
oHtm:WriteText("<UL>")
ProcWwwalso( oHtm, cSeealso )
oHtm:WriteText("</UL>")
ENDIF
oHtm:WriteText("</DL>")
oHtm:Close()
oHtm:WriteText("</UL></DL>")
if lDoc
oHtm:WriteText("</DL>")
oHtm:Close()
Endif
ENDIF
lDoc := .F.
lClassDoc := .F.
if lEndReturns .and. lClassDoc
lEndReturns:=.f.
oHtm:WriteText("</p></dd>")
endif
if lEndArgs .and. lClassDoc
lEndArgs:=.f.
oHtm:WriteText("</p></dd>")
endif
// if lClassDoc
// Rename htm\temp.htm to (cFileName)
// Erase htm\temp.htm
// ENDIF
nMode := D_IGNORE
ENDIF
@ MODULELINE, 33 CLEAR TO MODULELINE, MAXCOL()
ENDIF
// Act on the input
IF lDoc
IF lDoc .or. lClassDoc
// 1) function name
IF AT( cFunc, cBuffer ) > 0 .OR. AT( cComm, cBuffer ) > 0 .OR. AT( cSubCode, cBuffer ) >0
IF AT( cFunc, cBuffer ) > 0 .OR. AT( cComm, cBuffer ) > 0 .OR. AT( cSubCode, cBuffer ) >0
cBuffer := ReadLN( @lEof )
nLineCnt ++
// Save the function name
@@ -277,12 +338,45 @@ FUNCTION ProcessWww()
// Add on the extension
cFileName := LEFT( cFileName, 21 ) + ".htm"
oHTM := THTML():new( "htm\" + LOWER( cFileName ) )
IF oHtm:nHandle < 1
if lDoc
oHtm:=THTML():New('htm\'+cFileName)
endif
IF lFirstPass .and. lClassDoc
lFirstPass:=.F.
oHtm:=THTML():New('htm\'+cFileName)
ENDIF
IF ohtm:nHandle < 1
? "Error creating", cFileName, ".htm"
write_error( "Error creating",,,, cFileName + ".htm" )
ENDIF
ELSEIF AT( cdata, cBuffer ) > 0 .OR. AT( cmethod, cBuffer ) > 0 .and. lClassDoc
if AT( cdata, cBuffer ) > 0
lData := .T.
lMethod := .F.
ELSEIF AT( cmethod, cBuffer ) > 0
lMethod := .T.
lData:= .F.
ENDIF
cBuffer := ReadLN( @lEof )
nLineCnt ++
// Save the function name
cFuncName := UPPER( ALLTRIM( SUBSTR( cBuffer, nCommentLen ) ) )
@ MODULELINE, 33 CLEAR TO MODULELINE, MAXCOL()
@ MODULELINE, 33 SAY cFuncName
nMode := D_NORMAL
if AT("(",cfuncname)>0
cFuncname:=substr(cFuncName,1,AT("(",cFuncName)-1)
endif
if lEndDesc .and. lClassDoc
lEndDesc:=.f.
oHtm:WriteText("</p></dd>")
endif
oHtm:WriteText("<a NAME="+'"'+alltrim(UPPERLOWER(cFuncname))+'"'+"></a>")
// 2) Category
ELSEIF AT( cCat, cBuffer ) > 0
cBuffer := ReadLN( @lEof )
@@ -303,26 +397,32 @@ FUNCTION ProcessWww()
nMode := D_ONELINE
// Now start writing out what we know
oHtm:WriteText("<H1>"+ alltrim(PAD( cFuncName, 21 )) + "</H1>")
AADD( aWWW,{ cFuncName+" "+UPPERLOWER(cOneLine),LEFT(cFileName,AT(".",cFileName)-1)} )
oHtm:WriteText("<p>"+cOneline+"</p>"+ hb_osnewline())
if lData
oHtm:WriteText("<H1>DATA "+ alltrim(PAD( cFuncName, 21 )) + "</H1>")
oHtm:WriteText("<p>"+cOneline+"</p>"+ hb_osnewline())
ELSEIF lMethod
oHtm:WriteText("<H1> METHOD "+ alltrim(PAD( cFuncName, 21 )) + "</H1>")
oHtm:WriteText("<p>"+cOneline+"</p>"+ hb_osnewline())
ELSE
oHtm:WriteText("<H1>"+ alltrim(PAD( cFuncName, 21 )) + "</H1>")
AADD( aWWW,{ cFuncName,LEFT(cFileName,AT(".",cFileName)-1)} )
oHtm:WriteText("<p>"+cOneline+"</p>"+ hb_osnewline())
Endif
lFirstSintax := .T.
// 4) all other stuff
ELSE
if lDoc
IF AT( cSyn, cBuffer ) > 0
oHtm:WriteParBold( " Syntax" )
oHtm:WriteParBold( " Syntax" ,.f.,.f.)
ohtm:WriteText('<DD><P>')
nMode := D_SYNTAX
lAddBlank := .T.
lEndSyntax := .T.
ELSEIF AT( cArg, cBuffer ) > 0
if lEndSyntax
lEndSyntax:=.f.
oHtm:WriteText("</P></dd>")
/* oHtm:WriteText("</Pre></dd>") */
endif
oHtm:WriteParBold( " Arguments" )
ohtm:WriteText('<DD><P>')
@@ -331,11 +431,6 @@ FUNCTION ProcessWww()
lAddBlank := .T.
lEndArgs:=.t.
ELSEIF AT( cRet, cBuffer ) > 0
if lEndArgs
lEndArgs:=.f.
oHtm:WriteText("</P></dd>")
endif
IF !lBlankLine
* oHtm:WritePar( "" )
@@ -347,22 +442,18 @@ FUNCTION ProcessWww()
lAddBlank := .T.
lEndReturns:=.t.
ELSEIF AT( cDesc, cBuffer ) > 0
if lEndReturns
lEndReturns:=.f.
oHtm:WriteText("</P></dd>")
endif
IF !lBlankLine
oHtm:WriteText( "<br>" )
ENDIF
oHtm:WriteParBold( " Description" )
ohtm:WriteText('<DD><P>')
nMode := D_NORMAL
lAddBlank := .T.
lEndDesc:=.t.
ELSEIF AT( cExam, cBuffer ) > 0
if lEndDesc
lEndDesc:=.f.
oHtm:WriteText("<P></dd>")
endif
IF !lBlankLine
* oHtm:WritePar( "" )
@@ -375,51 +466,35 @@ FUNCTION ProcessWww()
ELSEIF AT( cTest, cBuffer ) > 0
if lAddEndPreTag
oHtm:WriteText("</PRE></DD>")
lAddEndPreTag:=.f.
Endif
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Tests" )
oHtm:WriteText("<DD><PRE>")
oHtm:WriteParBold( " Tests", .t.,.f.)
oHtm:WriteText("<DD><P>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cStatus, cBuffer ) > 0
if lAddEndPreTag
oHtm:WriteText("</PRE></DD>")
lAddEndPreTag:=.f.
Endif
nMode := D_STATUS
ELSEIF AT( cCompl, cBuffer ) > 0
if lAddEndPreTag
oHtm:WriteText("</PRE></DD>")
lAddEndPreTag:=.f.
Endif
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Compliance" )
oHtm:WriteText("<DD><PRE>")
oHtm:WriteText("<DD><P>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cPlat, cBuffer ) > 0
if lAddEndPreTag
oHtm:WriteText("</PRE></DD>")
lAddEndPreTag:=.f.
Endif
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Platforms" )
oHtm:WriteText("<DD><PRE>")
oHtm:WriteText("<DD><P>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFiles, cBuffer ) > 0
@@ -428,7 +503,260 @@ FUNCTION ProcessWww()
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Files" )
oHtm:WriteText("<DD><P>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFunction, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Functions" )
oHtm:WriteText("<DD><P>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cSee, cBuffer ) > 0
nMode := D_SEEALSO
ELSEIF AT( cInc, cBuffer ) > 0
nMode := D_INCLUDE
// All other input is trimmed of comments and sent out
ELSE
// translate any \$ into $
cBuffer := STRTRAN( cBuffer, "\" + DELIM, DELIM )
IF nMode = D_SYNTAX
IF LEN( cBuffer ) > LONGLINE
write_error( "Syntax", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
lAddBlank := .F.
ENDIF
cBuffer := ProcwwwBuf( cBuffer )
if lFirstSintax
oHtm:WriteText( cBuffer )
lFirstSintax:=.f.
Else
cBuffer:="<Br>"+cBuffer
oHtm:WriteText( cBuffer )
Endif
lFirstArg := .T.
ELSEIF nMode = D_ARG
IF LEN( cBuffer ) > LONGLINE
write_error( "Arguments", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
lAddBlank := .F.
ENDIF
IF AT("<",Alltrim(cBuffer))> 0
nPos := AT("<",ALLTRIM(cBuffer))
IF nPos <= 3
cBuffer := STRTRAN( cBuffer, "<", "&lt;" )
cBuffer := STRTRAN( cBuffer, ">", "&gt;" )
IF lFirstArg
cBuffer:= "<B>" + Substr(cBuffer,At("&lt;",cBuffer)-1,At("&gt;",cBuffer)-2)+"</b>"+Substr(cBuffer,At("&gt;",cBuffer)+4)
lFirstArg:=.F.
ELSE
cBuffer:= "<br><B>" + Substr(cBuffer,At("&lt;",cBuffer)-1,At("&gt;",cBuffer)-2)+"</b>"+Substr(cBuffer,At("&gt;",cBuffer)+4)
ENDIF
ELSE
cBuffer := STRTRAN( cBuffer, "<", "&lt;" )
cBuffer := STRTRAN( cBuffer, ">", "&gt;" )
ENDIF
ENDIF
oHtm:WriteText( cBuffer )
ELSEIF nMode = D_NORMAL
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lBlankLine
oHtm:WriteText('<br>')
lAddBlank := .F.
ENDIF
ohtm:WriteText(Alltrim(StripNgControls( cBuffer )))
ELSEIF nMode = D_EXAMPLE
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
lAddBlank := .F.
ENDIF
oHtm:WriteText( strtran(StripNgControls( cBuffer ),space(6),"") )
ELSEIF nMode = D_SEEALSO
IF .NOT. EMPTY( cBuffer )
cSeeAlso := StripFiles( ALLTRIM( cBuffer ) )
ENDIF
ELSEIF nMode = D_INCLUDE
// read next line
IF .NOT. EMPTY( cBuffer )
IF !lBlankLine
ENDIF
ENDIF
ELSEIF nMode = D_STATUS
IF !EMPTY( cBuffer )
oHtm:WriteParBold( "Status" )
oHtm:WriteText("<DD><P>")
ENDIF
ProcStatusWww( oHtm, cBuffer )
ELSE
// unknown data from somewhere
write_error( "Unknown Data Type " + cBuffer,, ;
nLineCnt, ;
LONGONELINE, aDirList[ i, F_NAME ] )
ENDIF
ENDIF
ELSEIF lClassDoc
IF AT( cSyn, cBuffer ) > 0 .or. AT( cConstruct, cBuffer ) > 0
IF AT( cSyn, cBuffer )>0
oHtm:WriteParBold( " Syntax",.F.,.f. )
ELSEIF AT( cConstruct, cBuffer ) > 0
oHtm:WriteParBold( " Constructor syntax", .F.,.f.)
ENDIF
ohtm:WriteText('<DD><P>')
nMode := D_SYNTAX
lAddBlank := .T.
lEndSyntax := .T.
ELSEIF AT( cArg, cBuffer ) > 0
oHtm:WriteParBold( " Arguments" )
ohtm:WriteText('<DD><P>')
nMode := D_ARG
lAddBlank := .T.
lEndArgs:=.t.
ELSEIF AT( cRet, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Returns" )
ohtm:WriteText('<DD><P>')
nMode := D_ARG
lAddBlank := .T.
lEndReturns := .T.
ELSEIF AT( cDesc, cBuffer ) > 0
IF !lBlankLine
oHtm:WriteText( "<br>" )
ENDIF
oHtm:WriteParBold( " Description" )
ohtm:WriteText('<DD><P>')
nMode := D_NORMAL
lAddBlank := .T.
lEndDesc := .T.
ELSEIF AT( cdatalink, cBuffer ) > 0
oHtm:WriteParBold( " Data" )
ohtm:WriteText('<DD><P>')
nMode := D_DATALINK
lAddBlank := .T.
lEnddatalink := .T.
lIsDataLink := .T.
ELSEIF AT( cDatanolink, cBuffer ) > 0
if !lisdatalink
oHtm:WriteParBold( " Data" )
ohtm:WriteText('<DD><P>')
endif
nMode := D_NORMAL
lAddBlank := .T.
lEndDatalink:=.t.
ELSEIF AT( cMethodslink, cBuffer ) > 0
oHtm:WriteParBold( " Method" )
ohtm:WriteText('<DD><P>')
nMode := D_METHODLINK
lAddBlank := .T.
lEndMethodlink := .T.
lIsMethodLink := .T.
ELSEIF AT( cMethodsnolink, cBuffer ) > 0
if !lisdatalink
oHtm:WriteParBold( " METHOD" )
ohtm:WriteText('<DD><P>')
endif
nMode := D_NORMAL
lAddBlank := .T.
lEndMethodlink := .T.
ELSEIF AT( cExam, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Examples" )
oHtm:WriteText("<DD><PRE>")
nMode := D_EXAMPLE
lAddBlank := .T.
lAddEndPreTag:=.T.
ELSEIF AT( cTest, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Tests" )
oHtm:WriteText("<dd><p>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cStatus, cBuffer ) > 0
nMode := D_STATUS
ELSEIF AT( cCompl, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Compliance" )
oHtm:WriteText("<dd><p>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cPlat, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Platforms" )
oHtm:WriteText("<dd><p>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFiles, cBuffer ) > 0
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Files" )
oHtm:WriteText("<dd><p>")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFunction, cBuffer ) > 0
@@ -441,7 +769,7 @@ FUNCTION ProcessWww()
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Functions" )
oHtm:WriteText("<DD><PRE>")
oHtm:WriteText("<dd><p>")
nMode := D_NORMAL
lAddBlank := .T.
@@ -460,6 +788,7 @@ FUNCTION ProcessWww()
nMode := D_INCLUDE
// All other input is trimmed of comments and sent out
ELSE
@@ -517,6 +846,31 @@ FUNCTION ProcessWww()
ENDIF
ohtm:WriteText(Alltrim(StripNgControls( cBuffer )))
ELSEIF nMode = D_DATALINK
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
lAddBlank := .F.
ENDIF
cTemp:=ALLTRIM(Substr(cBuffer,1,AT(":",cBuffer)-1))
ohtm:WriteText("<a href="+cFileName+"#"+UPPERLOWER(cTemp)+">"+ cBuffer+'</a>')
ELSEIF nMode = D_METHODLINK
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
lAddBlank := .F.
ENDIF
cTemp:=ALLTRIM(Substr(cBuffer,1,AT("(",cBuffer)-1))
ohtm:WriteText("<a href="+cFileName+"#"+UPPERLOWER(cTemp)+">"+ cBuffer+'</a>')
ELSEIF nMode = D_EXAMPLE
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
@@ -555,12 +909,30 @@ FUNCTION ProcessWww()
ENDIF
ENDIF
ENDIF
////////////////////
ENDIF
ENDIF
if !lClassDoc .and. lEof
if valtype(oHtm)=="O"
oHtm:WriteText('</p></dd></dl>')
oHtm:Close()
Endif
ENDIF
ENDDO
// Close down the input file
FT_FUSE()
if lClassDoc
oHtm:Close()
Endif
NEXT
RETURN nil
/***********************************
@@ -672,5 +1044,5 @@ FUNCTION ProcStatusWww( nWriteHandle, cBuffer )
ELSE
nWriteHandle:WriteText( " Not Started" )
ENDIF
nWriteHandle:WriteText( " </P></dd>")
RETURN nil

View File

@@ -468,7 +468,7 @@ FUNCTION ProcessiNg()
IF !EMPTY( cBuffer )
oNgi:WriteParBold( "Status" )
ENDIF
ProcStatusWww( oNgi, cBuffer )
ProcStatusNg( oNgi, cBuffer )
ELSE
@@ -727,3 +727,19 @@ FUNCTION ProcNgiAlso2( cSeealso )
ENDIF
NEXT
RETURN aAlso
FUNCTION ProcStatusng( nWriteHandle, cBuffer )
IF LEN( ALLTRIM( cBuffer ) ) >1
nWriteHandle:WritePar( cBuffer)
ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "R"
nWriteHandle:WritePar( " Ready" )
ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "S"
nWriteHandle:WritePar( " Started" )
ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "C"
nWriteHandle:WritePar( " Clipper" )
ELSE
nWriteHandle:WritePar( " Not Started" )
ENDIF
RETURN nil

View File

@@ -1,3 +1,4 @@
/*
* $Id$
*/
@@ -81,6 +82,9 @@ FUNCTION ProcessRtf()
#define D_INCLUDE 6
#define D_ONELINE 7
#define D_STATUS 8
#define D_DATALINK 10
#define D_METHODLINK 11
#define D_EXAMPLE 12
LOCAL i
LOCAL j
LOCAL nFiles := LEN( aDirList )
@@ -91,7 +95,8 @@ FUNCTION ProcessRtf()
LOCAL nEnd
LOCAL nCount
LOCAL xAddBlank
LOCAL nNumTopics :=0
LOCAL nCurTopics :=1
LOCAL cBar := "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"
LOCAL nMode
LOCAL cFuncName
@@ -101,12 +106,17 @@ FUNCTION ProcessRtf()
LOCAL nLineCnt
LOCAL cSeeAlso
LOCAL cTemp
LOCAL cTempx
LOCAL cChar
LOCAL lBlankLine := .F. // Blank line encountered and sent out
LOCAL lAddBlank := .F. // Need to add a blank line if next line is not blank
LOCAL lFirstArg := .T.
LOCAL lData := .F.
LOCAL lMethod := .F.
LOCAL oRtf
LOCAL nReadHandle
LOCAL lPar
LOCAL lWrite :=.f.
LOCAL cDoc := DELIM + "DOC" + DELIM // DOC keyword
LOCAL cEnd := DELIM + "END" + DELIM // END keyword
LOCAL cFunc := DELIM + "FUNCNAME" + DELIM // FUNCNAME keyword
@@ -127,8 +137,22 @@ FUNCTION ProcessRtf()
LOCAL cFiles := DELIM + 'FILES' + DELIM
LOCAL cSubCode := DELIM + 'SUBCODE' + DELIM
LOCAL cFunction := DELIM + 'FUNCTION' +DELIM
LOCAL cConstruct := DELIM + 'CONSTRUCTOR' + DELIM
LOCAL cDatalink := DELIM + 'DATALINK' + DELIM
LOCAL cDatanolink := DELIM + 'DATANOLINK' + DELIM
LOCAL cMethodslink := DELIM + 'METHODSLINK' + DELIM
LOCAL cMethodsNolink := DELIM + 'METHODSNOLINK' + DELIM
LOCAL cData := DELIM +"DATA"+ DELIM
LOCAL cMethod := DELIM +'METHOD' +DELIM
LOCAL cClassDoc := DELIM+ "CLASSDOC" + DELIM
lFirstArg:=.T.
lData := .F.
lMethod := .F.
lIsDataLink := .F.
lIsMethodLink := .F.
lWrite:=.f.
cTempx:=''
//
// Entry Point
//
@@ -136,7 +160,7 @@ FUNCTION ProcessRtf()
@ INFILELINE, 20 SAY "Extracting: "
@ MODULELINE, 20 SAY "Documenting: "
// loop through all of the files
oRtf := tRtf():new( "rtf\Harbour.rtf" ):WriteHeader()
FOR i := 1 TO nFiles
// Open file for input
@@ -158,6 +182,9 @@ FUNCTION ProcessRtf()
ENDIF
lEof := .F.
lDoc := .F.
lData:= .F.
lMethod := .F.
lPar:=.T.
// First find the author
DO WHILE .NOT. lEof
@@ -171,8 +198,8 @@ FUNCTION ProcessRtf()
ENDIF
// check to see if we are in doc mode or getting out of doc mode
IF AT( cDoc, cBuffer ) > 0
IF lDoc
IF AT( cDoc, cBuffer ) > 0 .or. AT( cClassDoc, cBuffer ) > 0
IF lDoc
write_error( cDoc + " encountered during extraction of Doc" ;
+ " at line" + STR( nLinecnt, 5, 0 ),,,, aDirList[ i, F_NAME ] )
ENDIF
@@ -182,8 +209,9 @@ FUNCTION ProcessRtf()
nLineCnt ++
cCategory := cFuncName := cSeeAlso := ""
nMode := D_IGNORE
ELSEIF AT( cEnd, cBuffer ) > 0
IF .NOT. lDoc
IF .NOT. lDoc
write_error( cEnd + " encountered outside of Doc area at line" ;
+ STR( nLinecnt, 5, 0 ),,,, aDirList[ i, F_NAME ] )
ELSE
@@ -198,15 +226,17 @@ FUNCTION ProcessRtf()
cFuncName := "Unknown"
ENDIF
AADD( aDocInfo, { cCategory, cFuncName, cOneLine, cFileName } )
// Now close down this little piece
lDoc := .F.
IF .NOT. EMPTY( cSeeAlso )
oRtf:WritePar(""):EndPar()
IF .NOT. EMPTY( cSeeAlso )
oRtf:WritePar("") //:endpar()
oRtf:WriteParBold( "See Also" )
ProcRtfalso( oRtf, cSeealso )
ENDIF
oRtf:Close()
Endif
lDoc := .F.
if i<nfiles
oRtf:EndPage()
endif
nMode := D_IGNORE
ENDIF
@@ -215,8 +245,6 @@ FUNCTION ProcessRtf()
// Act on the input
IF lDoc
// 1) function name
IF AT( cFunc, cBuffer ) > 0 .OR. AT( cComm, cBuffer ) > 0 .OR. AT( cSubCode, cBuffer ) >0
cBuffer := ReadLN( @lEof )
nLineCnt ++
@@ -272,11 +300,29 @@ FUNCTION ProcessRtf()
cFileName := LEFT( cFileName, 21 ) + ".rtf"
oRtf := TRTF():new( "rtf\" + cFileName ):WriteHeader()
IF oRtf:nHandle < 1
? "Error creating", cFileName, ".rtf"
write_error( "Error creating",,,, cFileName + ".rtf" )
ENDIF
ELSEIF AT( cdata, cBuffer ) > 0 .OR. AT( cmethod, cBuffer ) > 0
if AT( cdata, cBuffer ) > 0
lData := .T.
lMethod := .F.
ELSEIF AT( cmethod, cBuffer ) > 0
lMethod := .T.
lData:= .F.
ENDIF
cBuffer := ReadLN( @lEof )
nLineCnt ++
// Save the function name
cFuncName := UPPER( ALLTRIM( SUBSTR( cBuffer, nCommentLen ) ) )
@ MODULELINE, 33 CLEAR TO MODULELINE, MAXCOL()
@ MODULELINE, 33 SAY cFuncName
nMode := D_NORMAL
// 2) Category
// 2) Category
ELSEIF AT( cCat, cBuffer ) > 0
cBuffer := ReadLN( @lEof )
@@ -297,9 +343,15 @@ FUNCTION ProcessRtf()
nMode := D_ONELINE
// Now start writing out what we know
if lData
oRtf:WriteJumpTitle( left(cFilename,At('.',cFilename)-1)+ cFuncName, "Data "+cFuncName )
Elseif lMethod
oRtf:WriteJumpTitle( left(cFilename,At('.',cFilename)-1)+cFuncName, "Method " +cFuncName )
Else
oRtf:WriteTitle( PAD( cFuncName, 21 ), cFuncName )
oRtf:WriteParBold( cOneLine )
oRtf:WritePar( cBar ):EndPar()
oRtf:WriteParBold( cOneLine,.t. )
oRtf:WriteParBold( cBar,.t. )
ENDIF
// 4) all other stuff
ELSE
@@ -309,7 +361,16 @@ FUNCTION ProcessRtf()
oRtf:WriteParBold( " Syntax" )
nMode := D_SYNTAX
lAddBlank := .T.
ELSEIF AT( cConstruct, cBuffer ) > 0
oRtf:WriteParBold( " Constructor syntax" )
nMode := D_SYNTAX
lAddBlank := .T.
ELSEIF AT( cArg, cBuffer ) > 0
@@ -321,46 +382,87 @@ FUNCTION ProcessRtf()
nMode := D_ARG
lAddBlank := .T.
lPar:=.t.
ELSEIF AT( cRet, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar( "" ) //:endpar()
ENDIF
oRtf:WriteParBold( " Returns" )
nMode := D_ARG
lAddBlank := .T.
lPar:=.t.
ELSEIF AT( cDesc, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
ENDIF
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Description" )
oRtf:WritePar('') //:endpar()
nMode := D_NORMAL
lAddBlank := .T.
lPar:= .T.
ELSEIF AT( cdatalink, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ) //:endpar()
ENDIF
oRtf:WriteParBold( " Data" )
nMode := D_DATALINK
lAddBlank := .T.
lIsDataLink := .T.
ELSEIF AT( cDatanolink, cBuffer ) > 0
if !lIsDataLink
oRtf:WriteParBold( " Data" )
endif
nMode := D_NORMAL
lAddBlank := .T.
lEndDatalink:=.T.
lPar:= .T.
ELSEIF AT( cMethodslink, cBuffer ) > 0
oRtf:WriteParBold( " Method" )
nMode := D_METHODLINK
lAddBlank := .T.
lIsMethodLink := .T.
ELSEIF AT( cMethodsnolink, cBuffer ) > 0
if !lIsMethodLink
oRtf:WriteParBold( " Methods" )
endif
nMode := D_NORMAL
lAddBlank := .T.
lPar:= .T.
ELSEIF AT( cExam, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
//ortf:endpar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Examples" )
ENDIF
oRtf:WriteParBold( " Examples" )
nMode := D_NORMAL
nMode := D_EXAMPLE
lAddBlank := .T.
ELSEIF AT( cTest, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Tests" )
oRtf:WritePar('') //:endpar()
ENDIF
oRtf:WriteParBold( " Tests" )
nMode := D_NORMAL
lAddBlank := .T.
lPar:= .T.
ELSEIF AT( cStatus, cBuffer ) > 0
nMode := D_STATUS
@@ -368,40 +470,52 @@ FUNCTION ProcessRtf()
ELSEIF AT( cCompl, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
//ortf:endpar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Compliance" )
oRtf:WritePar('') //:endpar()
ENDIF
oRtf:WritePar( "" ):EndPar()
oRtf:WriteParBold( " Compliance" )
nMode := D_NORMAL
lAddBlank := .T.
lPar:= .T.
ELSEIF AT( cPlat, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
//ortf:endpar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Platforms" )
oRtf:WritePar('') //:endpar()
ENDIF
oRtf:WriteParBold( " Platforms" )
nMode := D_NORMAL
lAddBlank := .T.
lPar:= .T.
ELSEIF AT( cFiles, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Files" )
oRtf:WritePar('') //:endpar()
ENDIF
oRtf:WriteParBold( " Files" )
nMode := D_NORMAL
lPar:= .T.
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFunction, cBuffer ) > 0
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( " Functions" )
oRtf:WritePar('') //:endpar()
ENDIF
oRtf:WriteParBold( " Functions" )
nMode := D_NORMAL
lAddBlank := .T.
lPar:= .T.
ELSEIF AT( cSee, cBuffer ) > 0
nMode := D_SEEALSO
ELSEIF AT( cInc, cBuffer ) > 0
@@ -419,13 +533,13 @@ FUNCTION ProcessRtf()
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar( "" ) //:endpar()
lAddBlank := .F.
ENDIF
/* nNonBlank:=FirstNB(cBuffer)
cBuffer=STUFF(cBuffer,nNonBlank,0,"^a1f ")*/
oRtf:WritePar( cBuffer ):EndPar()
oRtf:WritePar(""):EndPar()
oRtf:WritePar( cBuffer ) //:endpar()
oRtf:WritePar("") //:endpar()
ELSEIF nMode = D_ARG
IF LEN( cBuffer ) > LONGLINE
@@ -434,23 +548,78 @@ FUNCTION ProcessRtf()
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar( "" ) //:endpar()
lAddBlank := .F.
ENDIF
cBuffer := STRTRAN( cBuffer, "<", "<", 1 )
cBuffer := STRTRAN( cBuffer, ">", ">", 1 )
oRtf:WritePar( StripNgControls( cBuffer ) ):EndPar()
ELSEIF nMode = D_NORMAL
IF AT("<",Alltrim(cBuffer))> 0
nPos := AT("<",ALLTRIM(cBuffer))
if nPos>0
oRtf:WriteParBoldText( substr(cBuffer,1,at(">",cbuffer)+1 ),substr(cBuffer,At(">",cBuffer)+1)+" ")
endif
ELSE
oRtf:WriteParText( ALLTRIM(cBuffer) )
ENDIF
ELSEIF nMode = D_DATALINK
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
oRtf:WritePar( "" ):EndPar()
lAddBlank := .F.
ENDIF
oRtf:WritePar( StripNgControls( cBuffer ) ):EndPar()
cTemp:=Substr(cBuffer,1,AT(":",cBuffer)-1)
cBuffer:=Substr(cBuffer,AT(":",cBuffer)+1)
oRtf:WriteJumpLink(Left(cfilename,At('.',cFilename)-1)+alltrim(cTemp),cTemp,cBuffer)
ELSEIF nMode = D_METHODLINK
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
lAddBlank := .F.
ENDIF
cTemp:=Substr(cBuffer,1,AT("()",cBuffer)+1)
cName:=Substr(cBuffer,1,AT("()",cBuffer)-1)
cBuffer:=Substr(cBuffer,AT("()",cBuffer)+2)
oRtf:WriteJumpLink(Left(cfilename,At('.',cFilename)-1)+alltrim(cTemp) ,cTemp,cBuffer)
ELSEIF nMode = D_NORMAL
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
if !lBlankLine
if lPar
oRtf:WritePar(cBuffer+" ")
lPar:=.f.
else
oRtf:WriteParText(" "+alltrim(cBuffer))
endif
Endif
if lBlankline
//ortf:endpar()
ortf:writepar('') //:endpar()
lPar:=.T.
endif
ELSEIF nMode = D_EXAMPLE
IF LEN( cBuffer ) > LONGLINE
write_error( "General", cBuffer, nLineCnt, ;
LONGLINE, aDirList[ i, F_NAME ] )
ENDIF
lBlankLine := EMPTY( cBuffer )
IF lAddBlank
oRtf:WritePar( "" ) //:endpar()
lAddBlank := .F.
ENDIF
oRtf:WritePar( cBuffer ) //:endpar()
ELSEIF nMode = D_SEEALSO
IF .NOT. EMPTY( cBuffer )
@@ -460,27 +629,20 @@ FUNCTION ProcessRtf()
// read next line
IF .NOT. EMPTY( cBuffer )
IF !lBlankLine
oRtf:WritePar( "" ):EndPar()
oRtf:WritePar( "" ) //:endpar()
ENDIF
oRtf:WritePar( " Header File: " ;
+ ALLTRIM( cBuffer ) ):EndPar()
ENDIF
ELSEIF nMode = D_STATUS
IF !EMPTY( cBuffer )
oRtf:WritePar(""):EndPar()
oRtf:WritePar('') //:endpar()
oRtf:WriteParBold( "Status" )
oRtf:WritePar(""):EndPar()
oRtf:WritePar('') //:endpar()
xaddblank:=.T.
ELSE
oRtf:WritePar(""):EndPar()
oRtf:WritePar("") //:endpar()
xAddBlank:=.T.
ENDIF
ProcStatusRtf( oRtf, cBuffer )
IF !xAddBlank
oRtf:WritePar(""):EndPar()
xaddblank:=.T.
ENDIF
xAddBlank:=.F.
ELSE
// unknown data from somewhere
@@ -490,15 +652,18 @@ FUNCTION ProcessRtf()
LONGONELINE, aDirList[ i, F_NAME ] )
ENDIF
endif
ENDIF
ENDIF
// ENDIF
ENDIF
? filesize(ortf:nhandle)
ENDDO
// Close down the input file
FT_FUSE()
NEXT
ortf:close()
RETURN NIL
FUNCTION ProcRtfAlso( nWriteHandle, cSeeAlso )
@@ -510,7 +675,7 @@ FUNCTION ProcRtfAlso( nWriteHandle, cSeeAlso )
LOCAL xTemp
LOCAL tPos
nLen := LEN( cSeeAlso )
WHILE .t.
WHILE .T.
nPos := AT( ",", cSeeAlso )
IF nPos > 0
@@ -568,13 +733,19 @@ RETURN nil
FUNCTION ProcStatusRTF( nWriteHandle, cBuffer )
IF LEN( ALLTRIM(cBuffer) ) >1
nWriteHandle:WritePar( cBuffer ):EndPar()
nWriteHandle:WritePar( cBuffer ) //:endpar()
ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "R"
nWriteHandle:WritePar( " Ready" ):EndPar()
nWriteHandle:WritePar( " Ready" ) //:endpar()
ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "S"
nWriteHandle:WritePar( " Started" ):EndPar()
nWriteHandle:WritePar( " Started" ) //:endpar()
ELSE
nWriteHandle:WritePar( " Not Started" ):EndPar()
nWriteHandle:WritePar( " Not Started" ) //:endpar()
ENDIF
RETURN nil
func filesize(cfile)
nretval := fseek(cfile,0,2)
return nretval

View File

@@ -141,7 +141,7 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile )
// LOCAL variables:
// NG/EH input
LOCAL aExtensions := { "*.prg", "*.c", "*.asm", "*.ch" , "*.txt" }
LOCAL aExtensions := { "*.ch","*.prg", "*.c", "*.asm" , "*.txt" }
LOCAL i
LOCAL j
LOCAL nItem,nHpj,nPos
@@ -419,47 +419,21 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile )
ELSEIF lRtf
nHpj := FCREATE( 'HARBOUR.HPJ' )
FWRITE( nHpj, '[OPTIONS]' + CRLF )
FWRITE( nHpj, 'COMPRESS=HIGH' + CRLF )
FWRITE(nHpj, 'HCW=1'+CRLF)
FWRITE( nHpj, 'COMPRESS=60 Hall Zeck' + CRLF )
FWRITE( nHpj, 'LCID=0x416 0x0 0x0 ;Português (brasileiro)'+CRLF)
FWRITE( nHpj, 'REPORT=Yes' + CRLF )
FWRITE( nHpj, 'CONTENTS=IDH_OVERVIEW' + CRLF )
FWRITE( nHpj, 'TITLE=Harbour Winhelp' + CRLF )
FWRITE( nHpj, 'COPYRIGHT=Harbour (C) http://www.harbour-project.org' + CRLF )
FWRITE( nHpj, 'HLP=.\harbour.hlp' + CRLF )
FWRITE( nHpj, 'ROOT=' + CURDIR() + "\RTF" + CRLF )
FWRITE( nHpj, 'CNT=.\Harbour.cnt'+CRLF)
FWRITE( nHpj, '[FILES]' + CRLF )
FOR i := 1 TO LEN( aDocInfo )
// Find match
nItem := 1
IF nItem > 0
IF i = 1 .OR. .NOT. ( ALLTRIM( aDocInfo[ i - 1, 1 ] ) == ALLTRIM( aDocInfo[ i, 1 ] ) )
// Make the first copy
FWRITE( nHpj, ALLTRIM( aDocInfo[ i, 4 ] ) + CRLF )
ELSE
// This may be slow but I don't have to worry about line length
FWRITE( nHpj, ALLTRIM( aDocInfo[ i, 4 ] ) + CRLF )
ENDIF
aLinkInfo[ nItem, 3 ] = .T.
ELSE
// Write the error message
SET ALTERNATE TO
SET ALTERNATE OFF
SET CONSOLE ON
write_error( "Category not found: " + aDocInfo[ i, 1 ],,,, aDocInfo[ i, 4 ] )
@ ERRORLINE, 0 CLEAR TO ERRORLINE, MAXCOL()
@ ERRORLINE, 20 SAY "Category not found: " + aDocInfo[ i, 1 ] + " in " + aDocInfo[ i, 4 ]
SET ALTERNATE TO "assembl.bat" ADDITIVE
SET ALTERNATE ON
SET CONSOLE OFF
ENDIF
NEXT
FWRITE( nHpj, "harbour.rtf"+CRLF)
FWRITE( nHpj, '[CONFIG]'+CRLF+'contents()'+CRLF+'prev()'+CRLF+'next()'+CRLF+'BrowseButtons()'+CRLF)
FWRITE( nHpj, '[WINDOWS]'+CRLF+'Commands="Harbour Commands",(653,102,360,600),20736,(r14876671),(r12632256),f3'+CRLF+'Error="Harbour Run Time Errors",(653,102,360,600),20736,(r14876671),(r12632256),f3'+CRLF+'Tools="Harbour Tools",(653,102,360,600),20736,(r14876671),(r12632256),f3'+CRLF+'Class="Harbour OOP Commands",(653,102,360,600),20736,(r14876671),(r12632256),f3'+CRLF+'Funca="Harbour Run Time Functions A-M",(653,102,360,600),20736,(r14876671),(r12632256),f3'+CRLF+'Funcn="Harbour Run Time Functions N-_",(653,102,360,600),20736,(r14876671),(r12632256),f3'+CRLF+'Main="HARBOUR",(117,100,894,873),60672,(r14876671),(r12632256),f3'+CRLF)
FCLOSE( nHpj )
ELSEIF lWWW
oHtm := THTML():New( "htm\harbour.htm" )
oHtm:WriteTitle( "Harbour Reference Guide" )
@@ -502,7 +476,7 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile )
oHtm:WriteText("<ul>")
FOR nPos := 1 TO LEN( aWww )
cTemp := aWww[ nPos,1 ]
IF AT( "()", cTemp ) == 0 .OR. UPPER(Left(ctemp,4)) =="BASE" .OR. UPPER(LEFT(cTemp,4))=="TERM" .OR. UPPER(LEFT(cTemp,5))=="TOOLS"
IF AT( "()", cTemp ) == 0 .And. UPPER(Left(ctemp,4)) =="BASE" .OR. UPPER(LEFT(cTemp,4))=="TERM" .OR. UPPER(LEFT(cTemp,5))=="TOOLS"
oHtm:WriteLink( Lower(aWww[ nPos ,2]),UpperLower(aWww[nPos,1]))
ENDIF
NEXT

View File

@@ -1,93 +1,25 @@
..\..\source\rdd\dbcmd.c
..\..\source\rtl\achoice.prg
..\..\source\rtl\adir.prg
..\..\source\rtl\alert.prg
..\..\source\rtl\arrays.c
..\..\source\rtl\asort.prg
..\..\source\rtl\binnum.c
..\..\source\rtl\break.c
..\..\source\rtl\browdb.prg
..\..\source\rtl\browse.prg
..\..\source\rtl\classes.c
..\..\source\rtl\codebloc.c
..\..\source\rtl\console.c
..\..\source\rtl\copyfile.c
..\..\source\rtl\dates.c
..\..\source\rtl\dbedit.prg
..\..\source\rtl\descend.c
..\..\source\rtl\devoutp.prg
..\..\source\rtl\dir.c
..\..\source\rtl\dircmd.prg
..\..\source\rtl\do.c
..\..\source\rtl\dummy.prg
..\..\source\rtl\empty.c
..\..\source\rtl\environ.c
..\..\source\rtl\errorapi.c
..\..\source\rtl\errorsys.prg
..\..\source\rtl\extend.c
..\..\source\rtl\fieldbl.prg
..\..\source\rtl\filesys.c
..\..\source\rtl\fm.c
..\..\source\rtl\gtapi.c
..\..\source\rtl\gtxxx.c
..\..\source\rtl\harbinit.prg
..\..\source\rtl\hardcr.c
..\..\source\rtl\initexit.c
..\..\source\rtl\inkey.c
..\..\source\rtl\input.prg
..\..\source\rtl\isprint.c
..\..\source\rtl\itemapi.c
..\..\source\rtl\langapi.c
..\..\source\rtl\len.c
..\..\source\rtl\license.prg
..\..\source\rtl\math.c
..\..\source\rtl\memofile.c
..\..\source\rtl\memoline.c
..\..\source\rtl\memvarbl.prg
..\..\source\rtl\memvars.c
..\..\source\rtl\menuto.prg
..\..\source\rtl\mlcount.c
..\..\source\rtl\mlpos.c
..\..\source\rtl\mouseapi.c
..\..\source\rtl\mousexxx.c
..\..\source\rtl\msgxxx.c
..\..\source\rtl\mtran.c
..\..\source\rtl\natmsg.c
..\..\source\rtl\net.c
..\..\source\rtl\objfunc.prg
..\..\source\rtl\oemansi.c
..\..\source\rtl\oldbox.c
..\..\source\rtl\oldclear.c
..\..\source\rtl\pcount.c
..\..\source\rtl\proc.c
..\..\source\rtl\pvalue.c
..\..\source\rtl\readkey.prg
..\..\source\rtl\readme.prg
..\..\source\rtl\samples.c
..\..\source\rtl\set.c
..\..\source\rtl\setcolor.c
..\..\source\rtl\setfunc.prg
..\..\source\rtl\setkey.prg
..\..\source\rtl\setta.prg
..\..\source\rtl\soundex.c
..\..\source\rtl\strings.c
..\..\source\rtl\tbcolumn.prg
..\..\source\rtl\tbrowse.prg
..\..\source\rtl\tclass.prg
..\..\source\rtl\terror.prg
..\..\source\rtl\text.prg
..\..\source\rtl\tget.prg
..\..\source\rtl\tgetlist.prg
..\..\source\rtl\tlabel.prg
..\..\source\rtl\tone.c
..\..\source\rtl\trace.c
..\..\source\rtl\transfrm.c
..\..\source\rtl\treport.prg
..\..\source\rtl\type.c
..\..\source\rtl\valtype.c
..\..\source\rtl\wait.prg
..\..\source\rtl\word.c
..\..\source\rtl\xhelp.c
..\..\source\rtl\xsavescr.prg
..\..\doc\subcodes.txt
..\..\doc\compiler.txt
..\..\doc\en\array.txt
..\..\doc\en\binnum.txt
..\..\doc\en\browse.txt
..\..\doc\en\command.txt
..\..\doc\en\dir.txt
..\..\doc\en\error.txt
..\..\doc\en\file.txt
..\..\doc\en\hvm.txt
..\..\doc\en\input.txt
..\..\doc\en\license.txt
..\..\doc\en\memo.txt
..\..\doc\en\menu.txt
..\..\doc\en\misc.txt
..\..\doc\en\nation.txt
..\..\doc\en\objfunc.txt
..\..\doc\en\rdd.txt
..\..\doc\en\readme.txt
..\..\doc\en\set.txt
..\..\doc\en\string.txt
..\..\doc\en\tclass.txt
..\..\doc\en\terminal.txt
..\..\doc\en\tgetlist.txt
..\..\doc\en\tlabel.txt
..\..\doc\en\treport.txt
..\..\doc\en\var.txt

View File

@@ -1,131 +1,36 @@
..\..\source\rdd\dbcmd.c
..\..\source\rtl\achoice.prg
..\..\source\rtl\adir.prg
..\..\source\rtl\alert.prg
..\..\source\rtl\arrays.c
..\..\source\rtl\asort.prg
..\..\source\rtl\binnum.c
..\..\source\rtl\break.c
..\..\source\rtl\browdb.prg
..\..\source\rtl\browse.prg
..\..\source\rtl\classes.c
..\..\source\rtl\codebloc.c
..\..\source\rtl\console.c
..\..\source\rtl\copyfile.c
..\..\source\rtl\dates.c
..\..\source\rtl\dbedit.prg
..\..\source\rtl\descend.c
..\..\source\rtl\devoutp.prg
..\..\source\rtl\dir.c
..\..\source\rtl\dircmd.prg
..\..\source\rtl\do.c
..\..\source\rtl\dummy.prg
..\..\source\rtl\empty.c
..\..\source\rtl\environ.c
..\..\source\rtl\errorapi.c
..\..\source\rtl\errorsys.prg
..\..\source\rtl\extend.c
..\..\source\rtl\fieldbl.prg
..\..\source\rtl\filesys.c
..\..\source\rtl\fm.c
..\..\source\rtl\gtapi.c
..\..\source\rtl\gtxxx.c
..\..\source\rtl\harbinit.prg
..\..\source\rtl\hardcr.c
..\..\source\rtl\initexit.c
..\..\source\rtl\inkey.c
..\..\source\rtl\input.prg
..\..\source\rtl\isprint.c
..\..\source\rtl\itemapi.c
..\..\source\rtl\langapi.c
..\..\source\rtl\len.c
..\..\source\rtl\license.prg
..\..\source\rtl\math.c
..\..\source\rtl\memofile.c
..\..\source\rtl\memoline.c
..\..\source\rtl\memvarbl.prg
..\..\source\rtl\memvars.c
..\..\source\rtl\menuto.prg
..\..\source\rtl\mlcount.c
..\..\source\rtl\mlpos.c
..\..\source\rtl\mouseapi.c
..\..\source\rtl\mousexxx.c
..\..\source\rtl\msgxxx.c
..\..\source\rtl\mtran.c
..\..\source\rtl\natmsg.c
..\..\source\rtl\net.c
..\..\source\rtl\objfunc.prg
..\..\source\rtl\oemansi.c
..\..\source\rtl\oldbox.c
..\..\source\rtl\oldclear.c
..\..\source\rtl\pcount.c
..\..\source\rtl\proc.c
..\..\source\rtl\pvalue.c
..\..\source\rtl\readkey.prg
..\..\source\rtl\readme.prg
..\..\source\rtl\samples.c
..\..\source\rtl\set.c
..\..\source\rtl\setcolor.c
..\..\source\rtl\setfunc.prg
..\..\source\rtl\setkey.prg
..\..\source\rtl\setta.prg
..\..\source\rtl\soundex.c
..\..\source\rtl\strings.c
..\..\source\rtl\tbcolumn.prg
..\..\source\rtl\tbrowse.prg
..\..\source\rtl\tclass.prg
..\..\source\rtl\terror.prg
..\..\source\rtl\text.prg
..\..\source\rtl\tget.prg
..\..\source\rtl\tgetlist.prg
..\..\source\rtl\tlabel.prg
..\..\source\rtl\tone.c
..\..\source\rtl\trace.c
..\..\source\rtl\transfrm.c
..\..\source\rtl\treport.prg
..\..\source\rtl\type.c
..\..\source\rtl\valtype.c
..\..\source\rtl\wait.prg
..\..\source\rtl\word.c
..\..\source\rtl\xhelp.c
..\..\source\rtl\xsavescr.prg
..\..\source\tools\asciisum.c
..\..\source\tools\strasint.c
..\..\source\tools\ascpos.c
..\..\source\tools\atdiff.c
..\..\source\tools\chareven.c
..\..\source\tools\charmix.c
..\..\source\tools\charodd.c
..\..\source\tools\chrcount.c
..\..\source\tools\chrfirst.c
..\..\source\tools\chrtotal.c
..\..\source\tools\ctchksum.c
..\..\source\tools\ctchrmix.c
..\..\source\tools\ctcrypt.c
..\..\source\tools\dates2.c
..\..\source\tools\datesx.c
..\..\source\tools\dbftools.c
..\..\source\tools\fileread.prg
..\..\source\tools\hb_f.c
..\..\source\tools\html.prg
..\..\source\tools\io.c
..\..\source\tools\mathx.c
..\..\source\tools\nconvert.prg
..\..\source\tools\ng.prg
..\..\source\tools\numtxten.prg
..\..\source\tools\numtxthu.prg
..\..\source\tools\os2.prg
..\..\source\tools\rtf.prg
..\..\source\tools\strcount.c
..\..\source\tools\strleft.c
..\..\source\tools\strcspn.c
..\..\source\tools\strdiff.c
..\..\source\tools\strexpan.c
..\..\source\tools\strfmt.c
..\..\source\tools\stringp.prg
..\..\source\tools\stringsx.c
..\..\source\tools\strright.c
..\..\source\tools\strpbrk.c
..\..\source\tools\troff.prg
..\..\doc\en\array.txt
..\..\doc\en\binnum.txt
..\..\doc\en\browse.txt
..\..\doc\en\command.txt
..\..\doc\en\dir.txt
..\..\doc\en\error.txt
..\..\doc\en\file.txt
..\..\doc\en\ht_class.txt
..\..\doc\en\ht_conv.txt
..\..\doc\en\ht_dbf.txt
..\..\doc\en\ht_doc.txt
..\..\doc\en\ht_file.txt
..\..\doc\en\ht_gt.txt
..\..\doc\en\ht_str.txt
..\..\doc\en\hvm.txt
..\..\doc\en\input.txt
..\..\doc\en\license.txt
..\..\doc\en\memo.txt
..\..\doc\en\menu.txt
..\..\doc\en\misc.txt
..\..\doc\en\nation.txt
..\..\doc\en\objfunc.txt
..\..\doc\en\rdd.txt
..\..\doc\en\readme.txt
..\..\doc\en\set.txt
..\..\doc\en\string.txt
..\..\doc\en\tclass.txt
..\..\doc\en\terminal.txt
..\..\doc\en\tgetlist.txt
..\..\doc\en\tlabel.txt
..\..\doc\en\treport.txt
..\..\doc\en\var.txt
..\..\doc\subcodes.txt
..\..\doc\compiler.txt
..\..\doc\harbext.txt
..\..\doc\gnulice.txt