diff --git a/harbour/utils/hbdoc/genrtf.prg b/harbour/utils/hbdoc/genrtf.prg index 751d600706..52c5d060f1 100644 --- a/harbour/utils/hbdoc/genrtf.prg +++ b/harbour/utils/hbdoc/genrtf.prg @@ -153,6 +153,7 @@ FUNCTION ProcessRtf() LOCAL cMethod := DELIM + 'METHOD' + DELIM LOCAL cClassDoc := DELIM + "CLASSDOC" + DELIM LOCAL cTable := DELIM + "TABLE" + DELIM + Local aAlso:={} lFirstArg := .T. lData := .F. lMethod := .F. @@ -240,7 +241,13 @@ FUNCTION ProcessRtf() IF .NOT. EMPTY( cSeeAlso ) oRtf:WritePar( "" ) //:endpar() oRtf:WriteParBold( "See Also" ) - ProcRtfalso( oRtf, cSeealso ) + oRtf:WritePar( "" ) //:endpar() + aAlso:=ListAsArray2(cSeeAlso,",") + if Len(aAlso) <3 + ProcRtfalso( oRtf, cSeealso ) + else + oRtf:WriteKLink(aAlso) + endif ENDIF lDoc := .F. @@ -388,7 +395,7 @@ FUNCTION ProcessRtf() ENDIF oRtf:WriteParBold( " Constructor syntax" ) - + oRtf:WritePar( "" ) nMode := D_SYNTAX lAddBlank := .T. diff --git a/harbour/utils/hbdoc/rtf.prg b/harbour/utils/hbdoc/rtf.prg index e4fb1ec120..1a695c664f 100644 --- a/harbour/utils/hbdoc/rtf.prg +++ b/harbour/utils/hbdoc/rtf.prg @@ -34,7 +34,7 @@ */ #define CRLF HB_OSNewLine() - +#xtranslate UPPERLOWER() => (UPPER(SUBSTR(,1,1))+LOWER(SUBSTR(,2))) #include 'hbclass.ch' #include 'common.ch' MEMVAR aWWW,aResult @@ -57,6 +57,7 @@ CLASS TRTF METHOD WriteParBox( cPar ) METHOD WriteLink( clink ) METHOD WriteJumpLink( clink ) + METHOD WritekLink( aLink ) METHOD WriteJumpLink1( cLink, cName, cText ) METHOD CLOSE() METHOD WriteParBold( cPar, lCenter ) @@ -206,8 +207,10 @@ METHOD WriteTitle( cTitle, cTopic, cOne ,cCat) CLASS TRTF cWrite := '{\f6' + CRLF + ; ' #{\footnote \pard\fs20 # ' + "IDH_" + cTemp + ' }' + CRLF + ; ' ${\footnote \pard\fs20 $ ' + ALLTRIM( cTopic ) + ' }' + CRLF + ; - ' K{\footnote \pard\fs20 K ' + ALLTRIM( cTopic ) + ' }' + CRLF + ; + ' K{\footnote \pard\fs20 K ' + UPPERLOWER(ALLTRIM( cTopic ))+";" + UPPERLOWER(ALLTRIM( cCat ))+ ' }' + CRLF + ; + ' A{\footnote \pard\fs20 A ' + UPPERLOWER(ALLTRIM( cTopic )) +' }' + CRLF + ; '}' + CRLF + /*" ; " + UPPERLOWER(cCat) +" , " +UPPERLOWER(ALLTRIM( strtran(cTopic,"()","" )))+ */ aadd(aWww,{cTopic,"IDH_"+cTemp,cCat}) nPos := ascan(aResult,{|a| UPPER(a) == UPPER(cCat)}) if nPos==0 @@ -267,6 +270,8 @@ METHOD WriteLink( cLink ) CLASS TRTF 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\uldb ' + 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 ) @@ -279,4 +284,20 @@ METHOD WriteJumpLink1( cLink, cName, cText ) CLASS TRTF RETURN Self +METHOD WritekLink( aLink ) CLASS TRTF +Local cItem:=' ' +Local nPos:=0 +Local nSize:=Len(aLink) +For nPos:=1 to nSize + if nPos==nSize + cItem+= aLink[nPos] + else + cItem+= aLink[nPos] + cItem+=";" + endif +next + FWRITE( Self:nHandle, '\par \pard\cf1\fs20 {\f6\uldb Related Topic }'+'{\v\f6 !ALink(" '+cItem + '", 2) }'+ CRLF ) + +RETURN Self + *+ EOF: RTF.PRG