From b0a7a11c15dc026e2cedb2cd1163f4219d994098 Mon Sep 17 00:00:00 2001 From: Luiz Rafael Culik Date: Thu, 8 Jun 2000 10:33:08 +0000 Subject: [PATCH] See changelog 20000608-07:30 --- harbour/utils/hbdoc/Makefile | 1 - harbour/utils/hbdoc/genchm.prg | 60 +++++++++---- harbour/utils/hbdoc/genhtm.prg | 82 +++++++++++------- harbour/utils/hbdoc/genos2.prg | 13 ++- harbour/utils/hbdoc/hbdoc.prg | 149 ++++++++++++++++++++++----------- harbour/utils/hbdoc/html.prg | 47 +++++++++-- harbour/utils/hbdoc/os2.prg | 36 +++++--- 7 files changed, 269 insertions(+), 119 deletions(-) diff --git a/harbour/utils/hbdoc/Makefile b/harbour/utils/hbdoc/Makefile index 64a154e20e..fa6c86ce9a 100644 --- a/harbour/utils/hbdoc/Makefile +++ b/harbour/utils/hbdoc/Makefile @@ -14,7 +14,6 @@ PRG_SOURCES=\ gentrf.prg \ genng.prg \ genhtm.prg \ - genchm.prg \ genrtf.prg \ genhpc.prg \ genasc.prg \ diff --git a/harbour/utils/hbdoc/genchm.prg b/harbour/utils/hbdoc/genchm.prg index be625d077f..6b220fcf3a 100644 --- a/harbour/utils/hbdoc/genchm.prg +++ b/harbour/utils/hbdoc/genchm.prg @@ -65,6 +65,7 @@ STATIC atiTable := {} STATIC nNumTableItems := 0 STATIC aCurDoc := {} STATIC nCurDoc := 1 +STATIC lWasTestExamples := .f. STATIC aColorTable := { 'aqua', 'black', 'fuchia', 'grey', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow' } @@ -245,7 +246,7 @@ FUNCTION ProcessChm() // WRITE_ERROR( "Blank Function Name",,,, aDirList[ i, F_NAME ] ) cFuncName := "Unknown" ENDIF - AADD( aDocInfo, { cCategory, cFuncName, cOneLine, cFileName } ) + AADD( aDocInfo, { cCategory, cFuncName, cOneLine, lower(cFileName) } ) // Now close down this little piece IF .NOT. EMPTY( cSeeAlso ) @@ -381,7 +382,7 @@ FUNCTION ProcessChm() oChm:WriteText( '
' ) oChm:WriteText( '
' ) - oChm:WriteText( "" ) + oChm:WriteText( "" ) // 2) Category ELSEIF AT( cCat, cBuffer ) > 0 @@ -475,11 +476,12 @@ end IF !lBlankLine // oChm:WritePar( "" ) ENDIF - oChm:WriteParBold( " Examples" ) + oChm:WriteText( " Examples" ) oChm:WriteText( "
" )
                   nMode         := D_EXAMPLE
                   lAddBlank     := .T.
                   lAddEndPreTag := .T.
+                  lWasTestExamples:=.t.
                   end
                ELSEIF AT( cTest, cBuffer ) > 0
                      if GetItem( cBuffer, nCurdoc ) 
@@ -490,6 +492,7 @@ end
                   oChm:WriteText( "

" ) nMode := D_EXAMPLE lAddBlank := .T. + lWasTestExamples:=.t. end ELSEIF AT( cStatus, cBuffer ) > 0 if GetItem( cBuffer, nCurdoc ) @@ -618,7 +621,7 @@ end lAddBlank := .F. ENDIF cTemp := ALLTRIM( SUBSTR( cBuffer, 1, AT( ":", cBuffer ) - 1 ) ) - oChm:WriteText( "" + cBuffer + '' ) + oChm:WriteText( "" + cBuffer + '' ) ELSEIF nMode = D_METHODLINK IF LEN( cBuffer ) > LONGLINE @@ -630,7 +633,7 @@ end lAddBlank := .F. ENDIF cTemp := ALLTRIM( SUBSTR( cBuffer, 1, AT( "(", cBuffer ) - 1 ) ) - oChm:WriteText( "" + cBuffer + '' ) + oChm:WriteText( "" + cBuffer + '' ) ELSEIF nMode = D_COMPLIANCE IF LEN( cBuffer ) > LONGLINE @@ -642,9 +645,15 @@ end ELSEIF nMode = D_STATUS IF !EMPTY( cBuffer ) + If lWasTestExamples + oChm:WriteParBold( "Status",.t.,.f. ) + Else oChm:WriteParBold( "Status" ) - oChm:WriteText( "

" ) + oChm:WriteText( "

" ) + Endif + lWasTestExamples:=.f. ENDIF + ProcStatusChm( oChm, cBuffer ) ELSE @@ -790,15 +799,15 @@ RETURN nil FUNCTION ProcStatusChm( nWriteHandle, cBuffer ) IF LEN( ALLTRIM( cBuffer ) ) > 1 - nWriteHandle:WriteText( cBuffer ) + nWriteHandle:Writepar( cBuffer ) ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "R" - nWriteHandle:WriteText( " Ready" ) + nWriteHandle:Writepar( " Ready" ) ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "S" - nWriteHandle:WriteText( " Started" ) + nWriteHandle:Writepar( " Started" ) ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "C" - nWriteHandle:WriteText( " Clipper" ) + nWriteHandle:Writepar( " Clipper" ) ELSE - nWriteHandle:WriteText( " Not Started" ) + nWriteHandle:Writepar( " Not Started" ) ENDIF RETURN nil @@ -858,7 +867,7 @@ FUNCTION FormatChmBuff( cBuffer, cStyle, oChm ) cReturn := STRTRAN( cReturn, "", "" ) cReturn := STRTRAN( cReturn, "<", "<" ) cReturn := STRTRAN( cReturn, ">", ">" ) - + cReturn := AllTrim(cReturn) creturn := '' + creturn + ' ' ELSEIF cStyle == 'Arguments' @@ -986,6 +995,7 @@ FUNCTION ProcChmDesc( cBuffer, oChm, cStyle ) LOCAL creturn := '' LOCAL ncolorend LOCAL nIdentLevel + LOCAL lHasFixed := .F. LOCAL lEndPar := .F. LOCAL cLine := '' LOCAL lEndFixed := .F. @@ -1053,6 +1063,11 @@ FUNCTION ProcChmDesc( cBuffer, oChm, cStyle ) ENDIF IF !EMPTY( cBuffer ) // cBuffer:=SUBSTR(cBuffer,2) + cBuffer := STRTRAN( cBuffer, "<", "<" ) + cBuffer := STRTRAN( cBuffer, ">", ">" ) + cBuffer := STRTRAN( cBuffer, "<b>", "" ) + cBuffer := STRTRAN( cBuffer, "</b>", "" ) + cBuffeR := ALLTRIM( cBuffer ) oChm:WritePar( cBuffer ) ENDIF @@ -1092,17 +1107,25 @@ FUNCTION ProcChmDesc( cBuffer, oChm, cStyle ) ENDIF IF AT( '', cBuffer ) > 0 .OR. cStyle = "Example" IF AT( '', cBuffer ) = 0 .OR. !EMPTY( cBuffer ) + if AT( '', cBuffer ) > 0 + lHasFixed:=.T. + else + lHasFixed:=.F. + Endif + + cBuffer := STRTRAN( cBuffer, "", "" ) cBuffer := STRTRAN( cBuffer, "", "" ) - - oChm:WriteText( "
" )
+         if !lHasFixed
          oChm:WritePar( cBuffer )
+         Endif
+
       ENDIF
       DO WHILE !lendFixed
          cOldLine := TRIM( SUBSTR( ReadLN( @lEof ), nCommentLen ) )
          IF AT( "", cOldLine ) > 0
             lendfixed := .t.
-            cOldLine  := STRTRAN( cOldLine, "", "" )
+            cOldLine  := ALLTRIM(STRTRAN( cOldLine, "", "" ))
          ENDIF
          IF AT( DELIM, cOldLine ) = 0
             cReturn += ALLTRIM( cOldLine ) + ' '
@@ -1112,11 +1135,12 @@ FUNCTION ProcChmDesc( cBuffer, oChm, cStyle )
             lEndfixed := .t.
 
          ENDIF
-         IF AT( DELIM, cOldLine ) == 0
-            oChm:WritePar( cOldLine )
+         IF AT( DELIM, cOldLine ) == 0 .and. !lendfixed
+            oChm:WriteText( cOldLine )
          ENDIF
+
       ENDDO
-      oChm:WriteText( "

" ) +// oChm:WriteText( "

" ) END IF AT( '', cBuffer ) > 0 DO WHILE !lendTable diff --git a/harbour/utils/hbdoc/genhtm.prg b/harbour/utils/hbdoc/genhtm.prg index 0f786e5a70..a64096d4d2 100644 --- a/harbour/utils/hbdoc/genhtm.prg +++ b/harbour/utils/hbdoc/genhtm.prg @@ -65,7 +65,7 @@ STATIC atiTable := {} STATIC nNumTableItems := 0 STATIC aCurDoc := {} STATIC nCurDoc := 1 - +STATIC lWasTestExamples := .f. STATIC aColorTable := { 'aqua', 'black', 'fuchia', 'grey', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow' } *+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 @@ -381,7 +381,7 @@ FUNCTION ProcessWww() ohtm:WriteText( '
' ) ohtm:WriteText( '
' ) - oHtm:WriteText( "" ) + oHtm:WriteText( "" ) // 2) Category ELSEIF AT( cCat, cBuffer ) > 0 @@ -423,7 +423,7 @@ FUNCTION ProcessWww() IF AT( cSyn, cBuffer ) > 0 if GetItem( cBuffer, nCurdoc ) oHtm:WriteParBold( " Syntax", .f., .f. ) - ohtm:WriteText( '

' ) + ohtm:WriteText( '

' ) nMode := D_SYNTAX lAddBlank := .T. lEndSyntax := .T. @@ -431,7 +431,7 @@ end ELSEIF AT( cConstruct, cBuffer ) > 0 if GetItem( cBuffer, nCurdoc ) oHtm:WriteParBold( " Constructor syntax", .F., .f. ) - ohtm:WriteText( '

' ) + ohtm:WriteText( '

' ) nMode := D_SYNTAX lAddBlank := .T. lEndSyntax := .T. @@ -439,7 +439,7 @@ end ELSEIF AT( cArg, cBuffer ) > 0 if GetItem( cBuffer, nCurdoc ) oHtm:WriteParBold( " Arguments" ) - ohtm:WriteText( '

' ) + ohtm:WriteText( '

' ) nMode := D_ARG lAddBlank := .T. @@ -452,7 +452,7 @@ end ENDIF oHtm:WriteParBold( " Returns" ) - ohtm:WriteText( '

' ) + ohtm:WriteText( '

' ) nMode := D_ARG lAddBlank := .T. lEndReturns := .t. @@ -464,7 +464,7 @@ end ENDIF oHtm:WriteParBold( " Description" ) - ohtm:WriteText( '

' ) + ohtm:WriteText( '

' ) nMode := D_DESCRIPTION lAddBlank := .T. @@ -475,21 +475,23 @@ end IF !lBlankLine // oHtm:WritePar( "" ) ENDIF - oHtm:WriteParBold( " Examples" ) + oHtm:WriteText( " Examples" ) oHtm:WriteText( "
" )
                   nMode         := D_EXAMPLE
                   lAddBlank     := .T.
                   lAddEndPreTag := .T.
+                  lWasTestExamples:=.t.
                   end
                ELSEIF AT( cTest, cBuffer ) > 0
                      if GetItem( cBuffer, nCurdoc ) 
                   IF !lBlankLine
                      //                     oHtm:WritePar( "" )
                   ENDIF
-                  oHtm:WriteParBold( " Tests", .t., .f. )
-                  oHtm:WriteText( "

" ) + oHtm:WriteText( "Tests" ) +// oHtm:WriteText( "

" ) nMode := D_EXAMPLE lAddBlank := .T. + lWasTestExamples:= .t. end ELSEIF AT( cStatus, cBuffer ) > 0 if GetItem( cBuffer, nCurdoc ) @@ -501,7 +503,7 @@ end // oHtm:WritePar( "" ) ENDIF oHtm:WriteParBold( " Compliance" ) - oHtm:WriteText( "

" ) + oHtm:WriteText( "

" ) nMode := D_COMPLIANCE lAddBlank := .T. end @@ -511,7 +513,7 @@ end // oHtm:WritePar( "" ) ENDIF oHtm:WriteParBold( " Platforms" ) - oHtm:WriteText( "

" ) + oHtm:WriteText( "

" ) nMode := D_NORMAL lAddBlank := .T. end @@ -521,7 +523,7 @@ end // oHtm:WritePar( "" ) ENDIF oHtm:WriteParBold( " Files" ) - oHtm:WriteText( "

" ) + oHtm:WriteText( "

" ) nMode := D_NORMAL lAddBlank := .T. end @@ -531,7 +533,7 @@ end // oHtm:WritePar( "" ) ENDIF oHtm:WriteParBold( " Functions" ) - oHtm:WriteText( "

" ) + oHtm:WriteText( "

" ) nMode := D_NORMAL lAddBlank := .T. end @@ -618,7 +620,7 @@ end lAddBlank := .F. ENDIF cTemp := ALLTRIM( SUBSTR( cBuffer, 1, AT( ":", cBuffer ) - 1 ) ) - ohtm:WriteText( "" + cBuffer + '' ) + ohtm:WriteText( "" + cBuffer + '' ) ELSEIF nMode = D_METHODLINK IF LEN( cBuffer ) > LONGLINE @@ -630,7 +632,7 @@ end lAddBlank := .F. ENDIF cTemp := ALLTRIM( SUBSTR( cBuffer, 1, AT( "(", cBuffer ) - 1 ) ) - ohtm:WriteText( "" + cBuffer + '' ) + ohtm:WriteText( "" + cBuffer + '' ) ELSEIF nMode = D_COMPLIANCE IF LEN( cBuffer ) > LONGLINE @@ -642,8 +644,13 @@ end ELSEIF nMode = D_STATUS IF !EMPTY( cBuffer ) + If lWasTestExamples + oHtm:WriteParBold( "Status",.t.,.f. ) + Else oHtm:WriteParBold( "Status" ) - oHtm:WriteText( "

" ) + oHtm:WriteText( "

" ) + Endif + lWasTestExamples:=.f. ENDIF ProcStatusWww( oHtm, cBuffer ) @@ -790,15 +797,15 @@ RETURN nil FUNCTION ProcStatusWww( nWriteHandle, cBuffer ) IF LEN( ALLTRIM( cBuffer ) ) > 1 - nWriteHandle:WriteText( cBuffer ) + nWriteHandle:Writepar( cBuffer ) ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "R" - nWriteHandle:WriteText( " Ready" ) + nWriteHandle:Writepar( " Ready" ) ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "S" - nWriteHandle:WriteText( " Started" ) + nWriteHandle:Writepar( " Started" ) ELSEIF SUBSTR( ALLTRIM( cBuffer ), 1 ) == "C" - nWriteHandle:WriteText( " Clipper" ) + nWriteHandle:Writepar( " Clipper" ) ELSE - nWriteHandle:WriteText( " Not Started" ) + nWriteHandle:Writepar( " Not Started" ) ENDIF RETURN nil @@ -858,7 +865,7 @@ FUNCTION FormatHtmBuff( cBuffer, cStyle, oHtm ) cReturn := STRTRAN( cReturn, "", "" ) cReturn := STRTRAN( cReturn, "<", "<" ) cReturn := STRTRAN( cReturn, ">", ">" ) - + cReturn := AllTrim(cReturn) creturn := '' + creturn + ' ' ELSEIF cStyle == 'Arguments' @@ -980,7 +987,8 @@ FUNCTION ProchtmDesc( cBuffer, oHtm, cStyle ) LOCAL cOldLine := '' LOCAL npos - LOCAL CurPos := 0 + LOCAL lHasFixed := .F. + LOCAL CurPos := 0 LOCAL nColorPos LOCAL ccolor := '' LOCAL creturn := '' @@ -1053,6 +1061,9 @@ FUNCTION ProchtmDesc( cBuffer, oHtm, cStyle ) ENDIF IF !EMPTY( cBuffer ) // cBuffer:=SUBSTR(cBuffer,2) + cBuffer := STRTRAN( cBuffer, "<", "<" ) + cBuffer := STRTRAN( cBuffer, ">", ">" ) + cBuffeR := ALLTRIM( cBuffer ) oHtm:WritePar( cBuffer ) ENDIF @@ -1092,17 +1103,26 @@ FUNCTION ProchtmDesc( cBuffer, oHtm, cStyle ) ENDIF IF AT( '', cBuffer ) > 0 .OR. cStyle = "Example" IF AT( '', cBuffer ) = 0 .OR. !EMPTY( cBuffer ) + if AT( '', cBuffer ) > 0 + lHasFixed:=.T. + else + lHasFixed:=.F. + Endif + cBuffer := STRTRAN( cBuffer, "", "" ) cBuffer := STRTRAN( cBuffer, "", "" ) - oHtm:WriteText( "
" )
-         oHtm:WritePar( cBuffer )
+//         oHtm:WriteText( "
" ) + if !lHasFixed + oHtm:WriteText( cBuffer ) + Endif ENDIF DO WHILE !lendFixed cOldLine := TRIM( SUBSTR( ReadLN( @lEof ), nCommentLen ) ) IF AT( "", cOldLine ) > 0 lendfixed := .t. - cOldLine := STRTRAN( cOldLine, "", "" ) + cOldLine := Alltrim(STRTRAN( cOldLine, "", "" )) + ENDIF IF AT( DELIM, cOldLine ) = 0 cReturn += ALLTRIM( cOldLine ) + ' ' @@ -1112,11 +1132,13 @@ FUNCTION ProchtmDesc( cBuffer, oHtm, cStyle ) lEndfixed := .t. ENDIF - IF AT( DELIM, cOldLine ) == 0 - oHtm:WritePar( cOldLine ) + + IF AT( DELIM, cOldLine ) == 0 .and. !lendfixed + oHtm:WriteText( cOldLine ) ENDIF ENDDO - oHtm:WriteText( "

" ) +// oHtm:WriteText( "

" ) + lHasFixed:=.f. END IF AT( '
', cBuffer ) > 0 DO WHILE !lendTable diff --git a/harbour/utils/hbdoc/genos2.prg b/harbour/utils/hbdoc/genos2.prg index e69d82dbc8..4dde722a1d 100644 --- a/harbour/utils/hbdoc/genos2.prg +++ b/harbour/utils/hbdoc/genos2.prg @@ -535,6 +535,7 @@ end LONGLINE, aDirList[ i, F_NAME ] ) ENDIF lBlankLine := EMPTY( cBuffer ) + cBuffer := oOs2:DosToOs2Text(cBuffer) IF AT( "", cBuffer ) > 0 STRTRAN( cBuffer, "", '' ) STRTRAN( cBuffer, "", '' ) @@ -551,7 +552,7 @@ end LONGLINE, aDirList[ i, F_NAME ] ) ENDIF lBlankLine := EMPTY( cBuffer ) - + oOs2:DosToOs2Text(cBuffer) procos2desc( cbuffer, oOs2, "Arguments" ) ELSEIF nMode = D_ARG @@ -560,6 +561,7 @@ end LONGLINE, aDirList[ i, F_NAME ] ) ENDIF lBlankLine := EMPTY( cBuffer ) + oOs2:DosToOs2Text(cBuffer) procos2desc( cbuffer, oOs2, "Arguments" ) ELSEIF nMode = D_NORMAL IF LEN( cBuffer ) > LONGLINE @@ -567,6 +569,7 @@ end LONGLINE, aDirList[ i, F_NAME ] ) ENDIF lBlankLine := EMPTY( cBuffer ) + oOs2:DosToOs2Text(cBuffer) procos2desc( cBuffer, oOs2 ) ELSEIF nMode = D_DATALINK IF LEN( cBuffer ) > LONGLINE @@ -611,6 +614,7 @@ end LONGLINE, aDirList[ i, F_NAME ] ) ENDIF lBlankLine := EMPTY( cBuffer ) + oOs2:DosToOs2Text(cBuffer) procos2desc( cBuffer, oOs2, "Compliance" ) ELSEIF nMode = D_DESCRIPTION @@ -619,6 +623,7 @@ end LONGLINE, aDirList[ i, F_NAME ] ) ENDIF lBlankLine := EMPTY( cBuffer ) + oOs2:DosToOs2Text(cBuffer) procos2desc( cBuffer, oOs2, "Description" ) ELSEIF nMode = D_EXAMPLE @@ -632,13 +637,14 @@ end oOs2:WritePar( "" ) //:endpar() lAddBlank := .F. ENDIF - + oOs2:DosToOs2Text(cBuffer) procos2desc( cBuffer, oOs2, "Example" ) ELSEIF nMode = D_STATUS IF !EMPTY( cBuffer ) oOs2:WriteParBold( "Status" ) ENDIF + oOs2:DosToOs2Text(cBuffer) ProcStatusOs2( oOs2, cBuffer ) ELSE @@ -1011,6 +1017,7 @@ FUNCTION Procos2Desc( cBuffer, oOs2, cStyle ) ENDIF IF AT( '', cBuffer ) > 0 .AND. AT( '', cBuffer ) > 0 + cBuffer := STRTRAN( cBuffer, '', '' ) cBuffer := STRTRAN( cBuffer, '', ':hp2. ' ) cBuffer := STRTRAN( cBuffer, '', ':ehp2. ' ) @@ -1032,7 +1039,7 @@ FUNCTION Procos2Desc( cBuffer, oOs2, cStyle ) ENDIF IF !EMPTY( cBuffer ) cBuffer := SUBSTR( cBuffer, 2 ) - oOs2:WritePar( cBuffer ) + oOs2:Writetext( cBuffer ) ENDIF ELSEIF cStyle == "Arguments" diff --git a/harbour/utils/hbdoc/hbdoc.prg b/harbour/utils/hbdoc/hbdoc.prg index 39433bcf00..f594e604ed 100644 --- a/harbour/utils/hbdoc/hbdoc.prg +++ b/harbour/utils/hbdoc/hbdoc.prg @@ -254,7 +254,7 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) CLEAR SCREEN SET CURSOR OFF - ReadLinkFile( cLinkName ) + if lNgi cCompiler := fill_Link_info( cLinkName ) endif @@ -267,6 +267,7 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) IF EMPTY( DIRECTORY( "rtf.*", "D" ) ) FT_MKDIR( "rtf" ) ENDIF + ReadLinkFile( cLinkName ) ELSEIF lWww IF EMPTY( DIRECTORY( "htm.*", "D" ) ) FT_MKDIR( "htm" ) @@ -280,6 +281,7 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) IF EMPTY( DIRECTORY( "ngi.*", "D" ) ) FT_MKDIR( "ngi" ) ENDIF + ReadLinkFile( cLinkName ) ELSEIF lTroff IF EMPTY( DIRECTORY( "tr.*", "D" ) ) FT_MKDIR( "tr" ) @@ -453,14 +455,14 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) aadd(aMetaContents,{'Keywords',"Harbour project, Clipper, xBase, database, Free Software, GNU, compiler, cross platform, 32-bit, FiveWin,"+cItem}) ohtm:=THTML():new('htm\hb'+strtran(citem," ","")+'.htm',aMetaContents) ohtm:WriteText('

'+adocinfo[1,1]+'


') - ohtm:WriteText("
    ") + ohtm:WriteText("
      ") for ppp:=1 to len(adocinfo) if citem ==adocinfo[ppp,1] - oHtm:Writelink(adocinfo[ppp,4],UpperLower(adocinfo[ppp,2])) + oHtm:Writelink(adocinfo[ppp,4],pad(adocinfo[ppp,2],21)+adocinfo[ppp,3]) else - ohtm:WriteText("
    ") + ohtm:WriteText("
") ohtm:close() citem:=adocinfo[ppp,1] aMetaContents:={} @@ -471,8 +473,8 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) // oHtm:WriteMetaTag('Keywords',"Harbour project, Clipper, xBase, database, Free Software, GNU, compiler, cross platform, 32-bit, FiveWin,"+cItem) ohtm:WriteText('

'+adocinfo[ppp,1]+'


') - ohtm:WriteText("
    ") - oHtm:Writelink(adocinfo[ppp,4],UpperLower(adocinfo[ppp,2])) + ohtm:WriteText("
      ") + oHtm:Writelink(adocinfo[ppp,4],pad(adocinfo[ppp,2],21)+adocinfo[ppp,3]) endif next if ppp>len(adocinfo) @@ -518,60 +520,23 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) ohtm1:writetext('
    ') ohtm1:close() -/* - oHtm := THTML():New( "htm\harbour.htm" ) -/* - ASORT( awww,,, { | x, y | x[ 1 ] < y[ 1 ] } ) - - FOR nPos := 1 TO LEN( aWww ) - cTemp := aWww[ nPos, 1 ] - IF LEFT( cTemp, 1 ) >= "A" .AND. LEFT( cTemp, 1 ) < "N" .AND. AT( "()", cTemp ) > 0 - oHtm:WriteLink( LOWER( aWww[ nPos, 2 ] ), UpperLower( aWww[ nPos, 1 ] ) ) - ENDIF - NEXT - FOR nPos := 1 TO LEN( aWww ) - cTemp := aWww[ nPos, 1 ] - IF LEFT( cTemp, 1 ) >= "N" .AND. LEFT( cTemp, 1 ) < "_" .AND. AT( "()", cTemp ) > 0 - oHtm:WriteLink( LOWER( aWww[ nPos, 2 ] ), UpperLower( aWww[ nPos, 1 ] ) ) - ENDIF - NEXT - oHtm:WriteText( "
" ) - oHtm:Writetext( "

Commands

" ) - oHtm:WriteText( "
    " ) - FOR nPos := 1 TO LEN( aWww ) - cTemp := aWww[ nPos, 1 ] - IF AT( "()", cTemp ) == 0 .AND. ctemp <> "LICENSE" .AND. cTemp <> "OVERVIEW" .AND. cTemp <> "Compiler Options" ; - .AND. UPPER( LEFT( ctemp, 4 ) ) <> "BASE" .AND. UPPER( LEFT( cTemp, 4 ) ) <> "TERM" .AND. UPPER( LEFT( cTemp, 5 ) ) <> "TOOLS" - - oHtm:WriteLink( LOWER( aWww[ nPos, 2 ] ), UpperLower( aWww[ nPos, 1 ] ) ) - ENDIF - NEXT - oHtm:WriteText( "
" ) - oHtm:WriteText( "

Run Time Error

" ) - oHtm:WriteText( "
    " ) - FOR nPos := 1 TO LEN( aWww ) - cTemp := aWww[ nPos, 1 ] - 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 - oHtm:WriteText( "
" ) - */ oHtm:Close() ELSEIF lChm nHpj := FCREATE( 'chm\'+lower(substr(cLinkName,1,AT(".",cLinkName)-1)) +".hhp" ) FWRITE( nHpj, '[OPTIONS]' + CRLF ) FWRITE( nHpj, 'Compatibility=1.1 or later'+CRLF) + FWRITE( nHpj, 'Auto Index=Yes'+CRLF) FWRITE( nHpj, 'Language=0x416 Portugu阺 (brasileiro)' + CRLF ) - FWRITE( nHpj, 'compiled file=.\'+ lower(substr(cLinkName,1,AT(".",cLinkName)-1)) +".chm"+ CRLF ) + FWRITE( nHpj, 'Contents file=.\'+ lower(substr(cLinkName,1,AT(".",cLinkName)-1)) +".hhc"+ CRLF ) + FWRITE( nHpj, 'Compiled file=.\'+ lower(substr(cLinkName,1,AT(".",cLinkName)-1)) +".chm"+ CRLF ) FWRITE( nHpj, 'Display compile progress=No'+CRLF) nPos:=aScan(awww,{|x| Upper(x[1])="OVERVIEW"}) if nPos > 0 - FWRITE( nHpj,'Default topic='+awww[npos,2]+CRLF) + FWRITE( nHpj,'Default topic='+ lower(awww[npos,2])+".htm"+CRLF) Else - FWRITE( nHpj,'Default topic='+awww[1,2]+CRLF) + FWRITE( nHpj,'Default topic='+lower(awww[1,2]) +".htm"+CRLF) Endif FWRITE( nHpj, '[FILES]' + CRLF ) For nPos:=1 to len(aWww) @@ -579,6 +544,94 @@ FUNCTION MAIN( cFlags, cLinkName, cAtFile ) Next FCLOSE( nHpj ) + + + ohtm:=THTML():NewContent('chm\'+lower(substr(cLinkName,1,AT(".",cLinkName)-1)) +".hhc") + ohtm:WriteText('') + ohtm:Addobject("text/site properties") + ohtm:EndObject() + ohtm:WriteText("
    ") + oHtm:ListItem() + oHtm:AddObject("text/sitemap") + oHTm:AddParam('Name','HARBOUR') + ohtm:EndObject() + ohtm:WriteText("
      ") + oHtm:ListItem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name","Harbour Read me") + oHtm:AddParam("Local","overview.htm") + oHtm:EndObject() + OHTM:WriteChmLink('overview.htm',"Harbour Read me") + oHtm:ListItem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name","Harbour License") + oHtm:AddParam("Local","license.htm") + oHtm:EndObject() + OHTM:WriteChmLink('license.htm',"Harbour License") + oHtm:ListItem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name","GNU License") + oHtm:AddParam("Local","http://www.gnu.org/copyleft/gpl.html") + oHtm:EndObject() + OHTM:WriteChmLink('http://www.gnu.org/copyleft/gpl.html',"GNU License") + oHtm:ListItem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name","Compiler Options") + oHtm:AddParam("Local","compileroptions.htm") + oHtm:EndObject() + OHTM:WriteChmLink('compileroptions.htm',"Compiler Options") + oHtm:ListItem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name","Harbour Extensions") + oHtm:AddParam("Local","harbourextensions.htm") + oHtm:EndObject() + OHTM:WriteChmLink('harbourextensions.htm',"Harbour Extensions") + oHtm:WriteText( "
    " ) + asort(adocinfo,,,{|x,y| x[1]+x[2]" ) + oHtm:Listitem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name",adocinfo[1,1]) + oHtm:EndObject() + ohtm:WriteText("
      ") + + for ppp:=1 to len(adocinfo) + + if citem ==adocinfo[ppp,1] + oHtm:Listitem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name",UpperLower(aDocinfo[ppp,2])) + oHtm:AddParam("Local",lower(aDocInfo[ppp,4])) + oHtm:EndObject() + oHtm:WriteChmlink(lower(adocinfo[ppp,4]),adocinfo[ppp,2]) + else + ohtm:WriteText("
    ") + + citem:=adocinfo[ppp,1] + oHtm:Listitem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name",adocinfo[ppp,1]) + oHtm:EndObject() + ohtm:WriteText("
      ") + oHtm:Listitem() + oHtm:AddObject("text/sitemap") + oHtm:AddParam("Name",UpperLower(aDocinfo[ppp,2])) + oHtm:AddParam("Local",lower(aDocInfo[ppp,4])) + oHtm:EndObject() + oHtm:WriteChmlink(lower(adocinfo[ppp,4]),adocinfo[ppp,2]) + + endif + next + if ppp>len(adocinfo) + exit + endif + enddo + ohtm:WriteText("
    ") + ohtm:close() + + ELSEIF lNgi SET ALTERNATE TO "assembl.bat" ADDITIVE SET ALTERNATE ON diff --git a/harbour/utils/hbdoc/html.prg b/harbour/utils/hbdoc/html.prg index 11dd66d1cd..b3d6baa67a 100644 --- a/harbour/utils/hbdoc/html.prg +++ b/harbour/utils/hbdoc/html.prg @@ -53,7 +53,8 @@ CLASS THTML METHOD WriteTitle( cTitle ) METHOD WritePar( cPar ) METHOD WriteParBold( cPar ) - METHOD WriteLink( cLink ) + METHOD WriteLink( cLink ,cName) + METHOD WriteChmLink( cLink ,cName) METHOD WriteText( cText ) METHOD WriteMetaTag(cTag,cDescription) METHOD CLOSE() @@ -63,12 +64,12 @@ CLASS THTML METHOD ADDPARAM(cName,cValue) METHOD EndOBJect() METHOD NewContent(cFile) + METHOD ListItem() ENDCLASS METHOD New( cFile,aMetaContents ) CLASS THTML Local nCount - ? Valtype(aMetaContents) IF Nx > 0 FCLOSE( NX ) ENDIF @@ -112,13 +113,13 @@ 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 ) + FWRITE( Self:nHandle, "

    " + CRLF + "
    " + CRLF + "
    " + CRLF + "
    " + ALLTRIM( cPar ) + '

    ' + CRLF ) ELSEIF !lPar .AND. !lEnddl - FWRITE( Self:nHandle, '

    ' + CRLF + "
    " + ALLTRIM( cPar ) + '
    ' + CRLF ) + FWRITE( Self:nHandle, '
    ' + CRLF + "
    " + ALLTRIM( cPar ) + '

    ' + CRLF ) ELSEIF !lPar .AND. lEnddl - FWRITE( Self:nHandle, "" + CRLF + "

    " + CRLF + "
    " + CRLF + "
    " + ALLTRIM( cPar ) + '
    ' + CRLF ) + 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 ) ENDIF RETURN Self @@ -166,7 +167,6 @@ return Self METHOD NewChm( cFile ,aMetaContents,cFuncName) CLASS THTML Local nCount - ? Valtype(aMetaContents) IF Nx > 0 FCLOSE( NX ) ENDIF @@ -191,10 +191,10 @@ METHOD NewChm( cFile ,aMetaContents,cFuncName) CLASS THTML RETURN Self method ADDOBJECT(cType,cClassId) Class THTML - IF VALTYPE(cClassId)<>NIL + IF VALTYPE(cClassId)<>NIL .and. VALTYPE(cClassId)=="C" FWRITE( Self:nHandle,''+CRLF) ELSE - FWRITE( Self:nHandle,''+CRLF) + FWRITE( Self:nHandle,''+CRLF) ENDIF RETURN Self METHOD ENDOBJECT() Class THTML @@ -218,4 +218,33 @@ METHOD NewContent( cFile ) CLASS THTML nX := Self:nHandle FWRITE( Self:nHandle, "" + CRLF ) RETURN Self + +METHOD ListItem() CLASS tHtml + FWRITE( Self:nHandle, "
  • " ) +RETURN SELF +METHOD WriteChmLink( cLink, cName ) CLASS THTML + + LOCAL nPos + LOCAL cTemp := '' + + nPos := AT( "()", cLink ) + IF nPos > 0 + if AT(".htm",cLink)=0 + cTemp := SUBSTR( cLink, 1, nPos - 1 ) + '.htm' + else + cTemp := SUBSTR( cLink, 1, nPos - 1 ) + endif + ELSE + if AT(".htm",cLink)=0 + cTemp := ALLTRIM( cLink ) + '.htm' + else + cTemp := ALLTRIM( cLink ) + endif + ENDIF + IF cName != Nil + cLink := cName + ENDIF + cTemp := STRTRAN( cTemp, " ", "" ) + FWRITE( Self:nHandle, "" + cLink + "
    " + CRLF ) +Return Self *+ EOF: HTML.PRG diff --git a/harbour/utils/hbdoc/os2.prg b/harbour/utils/hbdoc/os2.prg index 16484bb6d7..0e2babc2c3 100644 --- a/harbour/utils/hbdoc/os2.prg +++ b/harbour/utils/hbdoc/os2.prg @@ -138,7 +138,7 @@ RETURN Self METHOD WriteParBold( cPar ) CLASS TOs2 - FWRITE( Self:nHandle, ':p.:hp2.' + ALLTRIM( cPar ) + CRLF + ':ehp2.' + CRLF ) + FWRITE( Self:nHandle, ':p.:hp2.' + ALLTRIM( cPar ) + ':ehp2.' + CRLF ) RETURN Self @@ -148,16 +148,19 @@ METHOD WriteTitle( cTopic, cTitle ) CLASS TOs2 LOCAL nPos LOCAL cWrite LOCAL nItem + cTopic := ALLTRIM( cTopic ) IF Self:Scanlink( cTopic ) == 0 - nItem := ASCAN( Self:aLinkRef, { | a | a[ 1 ] == cTopic } ) + nItem := ASCAN( Self:aLinkRef, { | a | upper(a[ 1 ]) == upper(cTopic )} ) ELSE // Just in case that nItem>0 so the Link is already referenced - nItem := ASCAN( Self:aLinkRef, { | a | a[ 1 ] == cTopic } ) + nItem := ASCAN( Self:aLinkRef, { | a | upper(a[ 1 ]) == upper(cTopic) } ) ENDIF - FWRITE( Self:nHandle, ':h1 res=' + ALLTRIM( STR( nItem ) ) + '.' + cTopic + CRLF ) FWRITE( Self:nHandle, ':i1 id=' + UPPER( cTopic ) + "." + UPPER( cTopic ) + CRLF ) + cTopic := ::DosToOs2Text(cTopic) + cTitle := ::DosToOs2Text(cTitle) + FWRITE( Self:nHandle, ":p." + cTitle + CRLF ) RETURN Self @@ -175,9 +178,9 @@ METHOD WriteLink( cLink ) CLASS TOs2 LOCAL nItem IF Self:Scanlink( cLink ) == 0 - nItem := ASCAN( Self:aLinkRef, { | a | a[ 1 ] == cLink } ) // Again. + nItem := ASCAN( Self:aLinkRef, { | a | upper(a[ 1 ]) == upper(cLink) } ) // Again. ELSE - nItem := ASCAN( Self:aLinkRef, { | a, b | a[ 1 ] == cLink } ) + nItem := ASCAN( Self:aLinkRef, { | a, b | upper(a[ 1 ]) == upper(cLink) } ) ENDIF @@ -196,10 +199,10 @@ METHOD ScanLink( cLink ) CLASS TOs2 LOCAL nItem LOCAL nReturn - nItem := ASCAN( Self:aLinkRef, { | a, b | a[ 1 ] == cLink } ) + nItem := ASCAN( Self:aLinkRef, { | a, b | Upper(a[ 1 ] )== upper(cLink) } ) IF nItem == 0 - AADD( Self:aLinkRef, { cLink, Self:nRef } ) + AADD( Self:aLinkRef, { upper(cLink), Self:nRef } ) Self:nRef ++ ENDIF @@ -208,10 +211,23 @@ RETURN nItem METHOD DosToOs2Text( cText ) CLASS TOs2 LOCAL cReturn - - cReturn := STRTRAN( cText, '"', "&cdq." ) + cReturn := STRTRAN( cText, '&', "&." ) + cReturn := STRTRAN( cReturn, '"', "&cdq." ) cReturn := STRTRAN( cReturn, ':', "&colon." ) cReturn := STRTRAN( cReturn, ',', "&comma." ) + cReturn := STRTRAN( cReturn, '_', "&us." ) + cReturn := STRTRAN( cReturn, '~', "&tilde." ) + cReturn := STRTRAN( cReturn, '|', "&splitvbar." ) + cReturn := STRTRAN( cReturn, '/', "&slash." ) + cReturn := STRTRAN( cReturn, ';', "&semi." ) + cReturn := STRTRAN( cReturn, ')', "&rpar." ) + cReturn := STRTRAN( cReturn, ']', "&rbrk.." ) + cReturn := STRTRAN( cReturn, '}', "&rbrc." ) + cReturn := STRTRAN( cReturn, '(', "&lpar." ) + cReturn := STRTRAN( cReturn, '[', "&lbrk." ) + cReturn := STRTRAN( cReturn, '{', "&lbrc." ) + cReturn := STRTRAN( cReturn, '=', "&eq." ) + cReturn := STRTRAN( cReturn, '$', "&dollar." ) RETURN cReturn