Methods with a single 'summary' comment are nicely spaced apart, within an documented aggregate. Methods with both a 'summary' and a 'synopsys' end up with 2 or 3 extra (or additional) <br> instances after the method documentation ends.
The result is documentation that looks "higglety pigglety" ~ or non uniform
Comment #1 by bugzilla — 2006-06-14T23:03:52Z
Can you please provide a small example?
Comment #2 by clugdbug — 2010-03-13T13:05:06Z
I've worked out what this is. Trailing newlines don't get stripped from the Description section. Yes, action on an ancient bug!
Here's a test case:
/**
foo1
this has one BR*/
void foo1();
/**
foo2
this also has one BR
*/
void foo2();
/**
foo3
this still just has one BR
*/
void foo3();
/**
foo4
but this has two BRs!!
*/
void foo4();
Comment #3 by clugdbug — 2010-03-15T00:57:17Z
PATCH: Don't include trailing newlines.
doc.c line 1007.
Value of 'pend' shouldn't increase unless there's a non-\n
character.
+ pend = p;
while (1)
{
if (!*p)
- { pend = p;
goto L1;
- }
if (*p == '\n')
{ p++;
if (*p == '\n' && !summary && !namelen)
{
pend = p;
p++;
goto L1;
}
break;
}
p++;
+ pend = p;
}
p = skipwhitespace(p);
Comment #4 by clugdbug — 2010-03-15T02:08:52Z
Sorry, that patch came out wrong. The first line belongs further up in the function.
Around line 965:
{
p = skipwhitespace(p);
pstart = p;
+ pend = p;
/* Find end of section, which is ended by one of:
* 'identifier:' (but not inside a code section)
And around line 1007:
while (1)
{
if (!*p)
- { pend = p;
goto L1;
- }
if (*p == '\n')
{ p++;
if (*p == '\n' && !summary && !namelen)
{
pend = p;
p++;
goto L1;
}
break;
}
p++;
+ pend = p;
}
p = skipwhitespace(p);