Re: [Doxygen-develop] expansion of aliases with multiple references to same argument
Brought to you by:
dimitri
From: Dimitri v. H. <do...@gm...> - 2007-08-07 11:39:16
|
Hi Robbie, This is indeed a bug. I'll use a slightly different fix by starting with an empty result string, i.e.: QCString result; int p=0,i; while ((i=aliasValue.find(paramMarker,p))!=-1) // search for marker { result+=aliasValue.mid(p,i-p); if (i==0 || aliasValue.at(i-1)!='\\') // found unescaped marker { result += paramValue; p=i+markerLen; } else // ignore escaped markers { result += aliasValue.mid(i,markerLen); p=i+1; } } result+=aliasValue.right(aliasValue.length()-p); but the result should be the same. Regards, Dimitri On 7/31/07, Robbie Gates <ro...@m8...> wrote: > > Hi All, > i'm seeing what looks like a bug with an alias of the form > "THING{1} =<a href=\"http://prefix/THING-\1\">THING-\1</a>" > I was expecting THING{456} to expand to > <a href=\"http://prefix/THING-456\">THING-456</a> > However, with 1.5.3, it looks like i'm getting > <a href=\"http://prefix/THING-456\">THING4561</a> > It looks to me like replaceAliasArgument in util.cpp is the culprit - > the code uses aliasValue each time around the loop to find the > replacement index, but uses these as indexes into result. If the alias > arguments expand to strings of length other than 2, these indexes are > not in sync after the first replacement. By replacing aliasValue with > result in the loop condition and the escaped marker check i get the > expected behaviour (patch below). > > - robbie > > 6201c6201 > < while ((i=aliasValue.find(paramMarker,p))!=-1) // search for marker > --- > > while ((i=result.find(paramMarker,p))!=-1) // search for marker > 6205c6205 > < if (i==0 || aliasValue.at(i-1)!='\\') // found unescaped marker > --- > > if (i==0 || result.at(i-1)!='\\') // found unescaped marker > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Doxygen-develop mailing list > Dox...@li... > https://lists.sourceforge.net/lists/listinfo/doxygen-develop > |