[fpc-devel] [patch] fpdoc linear writer ResolveLink fix
graemeg.lists at gmail.com
Fri Aug 27 00:48:26 CEST 2010
On 26 August 2010 21:17, Marco van de Voort wrote:
> What is the pos() case meant to solve? If relative link starts with the
> current modules unit name, then try package.relativelink?
Looking at it again... I first created the "if Pos(...) =1
then...else" code - that solved some of the problems. Then with more
testing I noticed more unresolved links and with debugging found out
that the recursive "loop through all modules, then through all
packages" code was never reached. I then tweaked the code with the "if
CanWeExit() then" method.
But looking at it now, I think you might be right. Now that the Result
is correctly checked for and the recursive lookups are reached, the
first "if Pos(...) = 1 then" code might not be needed any more.
> But what if the relative link is to a different unit? I'm not sure, but
> afaik this will break stuff that worked before ?
Have you got an example? I modified the fpGUI Class documentation
over and over, to try all kinds of links. With package info, with
module info, with no info other than a identifier etc. etc... The
resolve link code seem to work pretty well with all the cases I threw
at it. I obviously tested with know problem cases from RTL and FCL
too. Every unresolved think I found was manually looked up (it was
pretty handy dumping the AddLabel() parameter values to a text file to
As you mentioned, I think the only redundant section is maybe the
first "if Pos(..) = 1" block.
I'll double check this at work tomorrow.
- Graeme -
fpGUI - a cross-platform Free Pascal GUI toolkit
More information about the fpc-devel