From 01c90d7d2d075049dc87d741e29d1d04cc018867 Mon Sep 17 00:00:00 2001
From: Luiz Rafael Culik
Date: Wed, 1 Mar 2000 17:10:21 +0000
Subject: [PATCH] See changelog 20000301 14:10
---
harbour/ChangeLog | 19 ++
harbour/doc/en/array.txt | 27 +-
harbour/doc/en/file.txt | 15 +-
harbour/doc/harbext.txt | 2 +-
harbour/source/tools/html.prg | 29 +-
harbour/source/tools/rtf.prg | 87 ++++-
harbour/source/tools/strasint.c | 2 +
harbour/source/tools/troff.prg | 1 +
harbour/utils/hbdoc/alpha.lnk | 8 +-
harbour/utils/hbdoc/genhtm.prg | 534 ++++++++++++++++++++++++++-----
harbour/utils/hbdoc/genng.prg | 18 +-
harbour/utils/hbdoc/genrtf.prg | 313 ++++++++++++++----
harbour/utils/hbdoc/hbdoc.prg | 46 +--
harbour/utils/hbdoc/hrb.rsp | 118 ++-----
harbour/utils/hbdoc/hrbtools.rsp | 165 ++--------
15 files changed, 927 insertions(+), 457 deletions(-)
diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index e120872b6f..a12f7fe8e2 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -1,3 +1,22 @@
+20000301-14:10 GMT-3 Luiz Rafael Culik
+ *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
* source/rtl/console.c
source/rtl/oldclear.c
diff --git a/harbour/doc/en/array.txt b/harbour/doc/en/array.txt
index 3ed4a9a8df..31be3ba71b 100644
--- a/harbour/doc/en/array.txt
+++ b/harbour/doc/en/array.txt
@@ -9,6 +9,9 @@
* Copyright 1999 Chen Kedem
* Documentation for: ASORT()
*
+ * Copyright 1999 Luiz Rafael Culik
+ * 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$
* is the number of elements in the specified dimension.
* $RETURNS$
- * ARRAY() returns an array of specified dimensions.
+ * an array of specified dimensions.
* $DESCRIPTION$
* This function returns an uninitialized array with the length of
* . Nested arrays are uninitialized within the same array
@@ -69,8 +72,8 @@
*
* Element to add to array
* $RETURNS$
- * The value of if specified, otherwise this function
- * returns a NIL value.
+ * if specified , will return , otherwise
+ * this function returns a NIL value.
* $DESCRIPTION$
* This function dynamically increases the length of the array
* named by one element and stores the value of to
@@ -106,7 +109,7 @@
*
* Numeric value representing the new size of
* $RETURNS$
- * ASIZE() returns an array pointer reference to .
+ * an array pointer reference to .
* $DESCRIPTION$
* This function will dynamically increase or decrease the size
* of by adjusting the length of the array to subscript
@@ -143,7 +146,7 @@
* $ARGUMENTS$
* is the array.
* $RETURNS$
- * Atail() return the expression of the last element in the array.
+ * the expression of the last element in the array.
* $DESCRIPTION$
* This function return the value of the last element in the array named
* . This function does not alter the size of the array or any of
@@ -176,7 +179,7 @@
*
* Subscript position in
* $RETURNS$
- * AINS() returns a array pointer reference to .
+ * an array pointer reference.
* $DESCRIPTION$
* This function inserts a NIL value in the array named
* at the th position.
@@ -215,7 +218,7 @@
*
* Subscript of the element to be removed.
* $RETURNS$
- * ADEL() Returns an array pointer reference to .
+ * an array pointer reference.
* $DESCRIPTION$
* This function deletes the element found at subscript
* position in the array . All elements in the array
@@ -259,7 +262,7 @@
*
* Number of subscript to be filled
* $RETURNS$
- * AFILL() returns an array pointer to .
+ * an array pointer.
* $DESCRIPTION$
* This function will fill each element of an array named with
* the value . If specified, denotes the beginning
@@ -360,7 +363,7 @@
*
* The number of elements to process.
* $RETURNS$
- * AEVAL() returns an array pointer reference.
+ * an array pointer reference.
* $DESCRIPTION$
* This function will evaluate and process the subscript elements
* in . A code block passed as defines the
@@ -410,7 +413,7 @@
* the starting subscript position in to copy
* elements to.
* $RETURNS$
- * ACOPY() returns an array pointer reference
+ * an array pointer reference
* $DESCRIPTION$
* This function copies array elements from to .
* is the beginning element to be copied from ; the
@@ -459,7 +462,7 @@
* $ARGUMENTS$
* Name of the array to be cloned.
* $RETURNS$
- * ACLONE() A new array pointer reference complete with nested array
+ * 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 or NIL if the
+ * reference to the now sorted or NIL if the
* passed is not an array.
* $DESCRIPTION$
* ASORT() sort all or part of a given array. If is omitted,
diff --git a/harbour/doc/en/file.txt b/harbour/doc/en/file.txt
index 3bbf43ac5c..8cd3e9d572 100644
--- a/harbour/doc/en/file.txt
+++ b/harbour/doc/en/file.txt
@@ -51,7 +51,7 @@
* accessibility of the file in a network environment.
*
* $RETURNS$
- * FOPEN() returns a DOS file handle
+ * a DOS file handle
* $DESCRIPTION$
* This function opens a file expressed as and returns a DOS
* file handle to be used with other low-level file functions.The
@@ -165,7 +165,7 @@
* Character expression passed by reference
* Number of bytes to read.
* $RETURNS$
- * FREAD() returns the number of bytes successfyly read from the file
+ * the number of bytes successfyly read from the file
*
* $DESCRIPTION$
* This function reads the characters from a DOS file whose file handle
@@ -219,7 +219,7 @@
* Character expression to be written.
* The number of bytes to write.
* $RETURNS$
- * FWRITE() returns the number of bytes successfully written.
+ * the number of bytes successfully written.
* $DESCRIPTION$
* This function writes the contents of to the file designa-
* ted by its file handle . If used, is the number of
@@ -411,7 +411,7 @@
* Old filenarne to he changed
* New filename
* $RETURNS$
- * FRENAME() returns If sucessful, a 0 will he returned otherwise,
+ * If sucessful, a 0 will he returned otherwise,
* a -1 will be returned.
* $DESCRIPTION$
* This function renames the specified file to .
@@ -463,7 +463,7 @@
* The number of bytes to move.
* The relative position in the file.
* $RETURNS$
- * FSEEK() return the current position relative to begin-of-file
+ * the current position relative to begin-of-file
* $DESCRIPTION$
* This function sets the file pointer in the file whose DOS file
* handle is and moves the file pointer by bytes
@@ -531,7 +531,8 @@
* $ARGUMENTS$
* Dos Skeleton or file name to find.
* $RETURNS$
- * FILE() return a logical true (.T.) or logical false (.F.).
+ * a logical true (.T.) if the file exists or logical
+ * false (.F.).
* $DESCRIPTION$
* This function return a logical true (.T.) if the given filename
* exist.
@@ -571,7 +572,7 @@
*
* Number of bytes to read.
* $RETURNS$
- * FREADSTR() return an characted expression
+ * an characted expression
* $DESCRIPTION$
* This function returns a character string of bytes from a
* file whose DOS file handle is .
diff --git a/harbour/doc/harbext.txt b/harbour/doc/harbext.txt
index 29f86af875..7e5ff061b4 100644
--- a/harbour/doc/harbext.txt
+++ b/harbour/doc/harbext.txt
@@ -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$
*/
diff --git a/harbour/source/tools/html.prg b/harbour/source/tools/html.prg
index c70a58afbe..2b601e7126 100644
--- a/harbour/source/tools/html.prg
+++ b/harbour/source/tools/html.prg
@@ -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, "" + CRLF )
+ nX := Self:nHandle
+ FWRITE( Self:nHandle, "" + 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,"
"+CRLF+ ""+CRLF+""+CRLF+"- " + Alltrim(cPar) + '
' + CRLF )
+ ELSEif !lPar .and. !lEnddl
+ FWRITE( Self:nHandle,''+CRLF+"- " + Alltrim(cPar) + '
' + CRLF )
+ ELSEif !lPar .and. lEnddl
+ FWRITE( Self:nHandle,""+CRLF+"
"+CRLF+ ""+CRLF+"- " + Alltrim(cPar) + '
' + CRLF )
+ ELSEif lPar .and. !lEnddl
+ FWRITE( Self:nHandle,""+CRLF+""+CRLF+"- " + Alltrim(cPar) + '
' + CRLF )
- FWRITE( Self:nHandle, "
"+CRLF+""+CRLF+"- " + Alltrim(cPar) + '
' + CRLF )
-
-RETURN Self
+ ENDIF
+RETURN Self
METHOD CLOSE() CLASS THTML
@@ -118,5 +130,6 @@ METHOD WriteLink( cLink ,cName ) CLASS THTML
FWRITE( Self:nHandle, "
" + cLink + "" + CRLF )
+
RETURN Self
diff --git a/harbour/source/tools/rtf.prg b/harbour/source/tools/rtf.prg
index 8ddf91086f..c763fdaf5b 100644
--- a/harbour/source/tools/rtf.prg
+++ b/harbour/source/tools/rtf.prg
@@ -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
diff --git a/harbour/source/tools/strasint.c b/harbour/source/tools/strasint.c
index b2e92e8ea6..34379faa86 100644
--- a/harbour/source/tools/strasint.c
+++ b/harbour/source/tools/strasint.c
@@ -31,3 +31,5 @@ int _GT_Internal_StringAsInt(char *String, int Start, int End)
}
return(Value);
}
+\page
+}
diff --git a/harbour/source/tools/troff.prg b/harbour/source/tools/troff.prg
index 76bcb3877c..37e07494cc 100644
--- a/harbour/source/tools/troff.prg
+++ b/harbour/source/tools/troff.prg
@@ -135,3 +135,4 @@ METHOD WriteLink( cLink ) CLASS TTROFF
FWRITE( Self:nHandle, ALLTRIM( cLink ) +CRLF)
RETURN Self
+
diff --git a/harbour/utils/hbdoc/alpha.lnk b/harbour/utils/hbdoc/alpha.lnk
index 959f6461f9..f6c19034d1 100644
--- a/harbour/utils/hbdoc/alpha.lnk
+++ b/harbour/utils/hbdoc/alpha.lnk
@@ -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
+
diff --git a/harbour/utils/hbdoc/genhtm.prg b/harbour/utils/hbdoc/genhtm.prg
index 32a6c35725..69cdf0f43b 100644
--- a/harbour/utils/hbdoc/genhtm.prg
+++ b/harbour/utils/hbdoc/genhtm.prg
@@ -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("")
ProcWwwalso( oHtm, cSeealso )
- oHtm:WriteText("
")
- ENDIF
- oHtm:WriteText("")
- oHtm:Close()
+ oHtm:WriteText("")
+ if lDoc
+ oHtm:WriteText("")
+ oHtm:Close()
+ Endif
+
+ ENDIF
+ lDoc := .F.
+ lClassDoc := .F.
+
+ if lEndReturns .and. lClassDoc
+ lEndReturns:=.f.
+ oHtm:WriteText("")
+ endif
+ if lEndArgs .and. lClassDoc
+ lEndArgs:=.f.
+ oHtm:WriteText("")
+ 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("")
+ endif
+
+ oHtm:WriteText("")
+
// 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(""+ alltrim(PAD( cFuncName, 21 )) + "
")
- AADD( aWWW,{ cFuncName+" "+UPPERLOWER(cOneLine),LEFT(cFileName,AT(".",cFileName)-1)} )
- oHtm:WriteText(""+cOneline+"
"+ hb_osnewline())
+
+ if lData
+ oHtm:WriteText("DATA "+ alltrim(PAD( cFuncName, 21 )) + "
")
+ oHtm:WriteText(""+cOneline+"
"+ hb_osnewline())
+ ELSEIF lMethod
+ oHtm:WriteText(" METHOD "+ alltrim(PAD( cFuncName, 21 )) + "
")
+ oHtm:WriteText(""+cOneline+"
"+ hb_osnewline())
+ ELSE
+ oHtm:WriteText(""+ alltrim(PAD( cFuncName, 21 )) + "
")
+ AADD( aWWW,{ cFuncName,LEFT(cFileName,AT(".",cFileName)-1)} )
+ oHtm:WriteText(""+cOneline+"
"+ 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('')
nMode := D_SYNTAX
lAddBlank := .T.
lEndSyntax := .T.
+
ELSEIF AT( cArg, cBuffer ) > 0
- if lEndSyntax
- lEndSyntax:=.f.
- oHtm:WriteText("
")
-/* oHtm:WriteText("") */
- endif
oHtm:WriteParBold( " Arguments" )
ohtm:WriteText('')
@@ -331,11 +431,6 @@ FUNCTION ProcessWww()
lAddBlank := .T.
lEndArgs:=.t.
ELSEIF AT( cRet, cBuffer ) > 0
- if lEndArgs
- lEndArgs:=.f.
-
- oHtm:WriteText("
")
- 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("")
- endif
+ IF !lBlankLine
+ oHtm:WriteText( "
" )
+ ENDIF
oHtm:WriteParBold( " Description" )
ohtm:WriteText('')
+
nMode := D_NORMAL
lAddBlank := .T.
lEndDesc:=.t.
ELSEIF AT( cExam, cBuffer ) > 0
- if lEndDesc
- lEndDesc:=.f.
- oHtm:WriteText("
")
- endif
IF !lBlankLine
* oHtm:WritePar( "" )
@@ -375,51 +466,35 @@ FUNCTION ProcessWww()
ELSEIF AT( cTest, cBuffer ) > 0
- if lAddEndPreTag
- oHtm:WriteText("")
- lAddEndPreTag:=.f.
- Endif
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
- oHtm:WriteParBold( " Tests" )
- oHtm:WriteText("")
+ oHtm:WriteParBold( " Tests", .t.,.f.)
+ oHtm:WriteText("")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cStatus, cBuffer ) > 0
- if lAddEndPreTag
- oHtm:WriteText("
")
- lAddEndPreTag:=.f.
- Endif
nMode := D_STATUS
ELSEIF AT( cCompl, cBuffer ) > 0
- if lAddEndPreTag
- oHtm:WriteText("")
- lAddEndPreTag:=.f.
- Endif
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Compliance" )
- oHtm:WriteText("")
+ oHtm:WriteText("")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cPlat, cBuffer ) > 0
- if lAddEndPreTag
- oHtm:WriteText("
")
- lAddEndPreTag:=.f.
- Endif
IF !lBlankLine
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Platforms" )
- oHtm:WriteText("")
+ oHtm:WriteText("")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFiles, cBuffer ) > 0
@@ -428,7 +503,260 @@ FUNCTION ProcessWww()
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Files" )
+ oHtm:WriteText("
")
+ nMode := D_NORMAL
+ lAddBlank := .T.
+ ELSEIF AT( cFunction, cBuffer ) > 0
+
+ IF !lBlankLine
+ * oHtm:WritePar( "" )
+ ENDIF
+ oHtm:WriteParBold( " Functions" )
+ oHtm:WriteText("
")
+ 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:="
"+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, "<", "<" )
+ cBuffer := STRTRAN( cBuffer, ">", ">" )
+ IF lFirstArg
+ cBuffer:= "" + Substr(cBuffer,At("<",cBuffer)-1,At(">",cBuffer)-2)+""+Substr(cBuffer,At(">",cBuffer)+4)
+ lFirstArg:=.F.
+ ELSE
+ cBuffer:= "
" + Substr(cBuffer,At("<",cBuffer)-1,At(">",cBuffer)-2)+""+Substr(cBuffer,At(">",cBuffer)+4)
+ ENDIF
+ ELSE
+ cBuffer := STRTRAN( cBuffer, "<", "<" )
+ cBuffer := STRTRAN( cBuffer, ">", ">" )
+ 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('
')
+ 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("
")
+ 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('
')
+ nMode := D_SYNTAX
+ lAddBlank := .T.
+ lEndSyntax := .T.
+
+ ELSEIF AT( cArg, cBuffer ) > 0
+
+ oHtm:WriteParBold( " Arguments" )
+ ohtm:WriteText('
')
+
+ nMode := D_ARG
+ lAddBlank := .T.
+ lEndArgs:=.t.
+ ELSEIF AT( cRet, cBuffer ) > 0
+
+ IF !lBlankLine
+* oHtm:WritePar( "" )
+ ENDIF
+
+ oHtm:WriteParBold( " Returns" )
+ ohtm:WriteText('
')
+ nMode := D_ARG
+ lAddBlank := .T.
+ lEndReturns := .T.
+ ELSEIF AT( cDesc, cBuffer ) > 0
+ IF !lBlankLine
+ oHtm:WriteText( "
" )
+ ENDIF
+
+
+ oHtm:WriteParBold( " Description" )
+ ohtm:WriteText('
')
+ nMode := D_NORMAL
+ lAddBlank := .T.
+ lEndDesc := .T.
+ ELSEIF AT( cdatalink, cBuffer ) > 0
+
+ oHtm:WriteParBold( " Data" )
+ ohtm:WriteText('
')
+ nMode := D_DATALINK
+ lAddBlank := .T.
+ lEnddatalink := .T.
+ lIsDataLink := .T.
+
+ ELSEIF AT( cDatanolink, cBuffer ) > 0
+ if !lisdatalink
+ oHtm:WriteParBold( " Data" )
+
+ ohtm:WriteText('
')
+ endif
+ nMode := D_NORMAL
+ lAddBlank := .T.
+ lEndDatalink:=.t.
+
+ ELSEIF AT( cMethodslink, cBuffer ) > 0
+
+ oHtm:WriteParBold( " Method" )
+ ohtm:WriteText('
')
+ nMode := D_METHODLINK
+ lAddBlank := .T.
+ lEndMethodlink := .T.
+ lIsMethodLink := .T.
+
+ ELSEIF AT( cMethodsnolink, cBuffer ) > 0
+ if !lisdatalink
+ oHtm:WriteParBold( " METHOD" )
+
+ ohtm:WriteText('
')
+ endif
+
+ nMode := D_NORMAL
+ lAddBlank := .T.
+ lEndMethodlink := .T.
+
+
+ ELSEIF AT( cExam, cBuffer ) > 0
+
+ IF !lBlankLine
+* oHtm:WritePar( "" )
+ ENDIF
+ oHtm:WriteParBold( " Examples" )
oHtm:WriteText("
")
+ nMode := D_EXAMPLE
+ lAddBlank := .T.
+ lAddEndPreTag:=.T.
+
+
+ ELSEIF AT( cTest, cBuffer ) > 0
+
+ IF !lBlankLine
+ * oHtm:WritePar( "" )
+ ENDIF
+ oHtm:WriteParBold( " Tests" )
+ oHtm:WriteText("")
+ 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("
")
+ nMode := D_NORMAL
+ lAddBlank := .T.
+ ELSEIF AT( cPlat, cBuffer ) > 0
+
+ IF !lBlankLine
+ * oHtm:WritePar( "" )
+ ENDIF
+ oHtm:WriteParBold( " Platforms" )
+ oHtm:WriteText("
")
+ nMode := D_NORMAL
+ lAddBlank := .T.
+ ELSEIF AT( cFiles, cBuffer ) > 0
+
+ IF !lBlankLine
+ * oHtm:WritePar( "" )
+ ENDIF
+ oHtm:WriteParBold( " Files" )
+ oHtm:WriteText("
")
nMode := D_NORMAL
lAddBlank := .T.
ELSEIF AT( cFunction, cBuffer ) > 0
@@ -441,7 +769,7 @@ FUNCTION ProcessWww()
* oHtm:WritePar( "" )
ENDIF
oHtm:WriteParBold( " Functions" )
- oHtm:WriteText("
")
+ oHtm:WriteText("")
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(""+ 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:=ALLTRIM(Substr(cBuffer,1,AT("(",cBuffer)-1))
+ ohtm:WriteText(""+ cBuffer+'')
+
+
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('
')
+ 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( " ")
+
RETURN nil
diff --git a/harbour/utils/hbdoc/genng.prg b/harbour/utils/hbdoc/genng.prg
index da99daf56e..7b0095c966 100644
--- a/harbour/utils/hbdoc/genng.prg
+++ b/harbour/utils/hbdoc/genng.prg
@@ -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
+
diff --git a/harbour/utils/hbdoc/genrtf.prg b/harbour/utils/hbdoc/genrtf.prg
index bc0255d7f0..cbb350a11d 100644
--- a/harbour/utils/hbdoc/genrtf.prg
+++ b/harbour/utils/hbdoc/genrtf.prg
@@ -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 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
diff --git a/harbour/utils/hbdoc/hbdoc.prg b/harbour/utils/hbdoc/hbdoc.prg
index e86959e08b..15a1a39550 100644
--- a/harbour/utils/hbdoc/hbdoc.prg
+++ b/harbour/utils/hbdoc/hbdoc.prg
@@ -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("")
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
diff --git a/harbour/utils/hbdoc/hrb.rsp b/harbour/utils/hbdoc/hrb.rsp
index 177550e1b2..f7d7f4b645 100644
--- a/harbour/utils/hbdoc/hrb.rsp
+++ b/harbour/utils/hbdoc/hrb.rsp
@@ -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
diff --git a/harbour/utils/hbdoc/hrbtools.rsp b/harbour/utils/hbdoc/hrbtools.rsp
index c7a8b6e46a..a3ed6018a2 100644
--- a/harbour/utils/hbdoc/hrbtools.rsp
+++ b/harbour/utils/hbdoc/hrbtools.rsp
@@ -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
+