Bug 122 – DDoc newline behaviour produces suboptimal results

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
x86
OS
Windows
Creation time
2006-04-30T22:41:00Z
Last change time
2014-02-15T13:13:04Z
Keywords
ddoc, patch
Assigned to
bugzilla
Creator
someidiot

Comments

Comment #0 by someidiot — 2006-04-30T22:41:13Z
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);
Comment #5 by clugdbug — 2010-03-15T12:58:16Z
See bug 1628 for a better patch.
Comment #6 by clugdbug — 2010-04-09T19:07:34Z
Fixed DMD1.058 and DMD2.043.