diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2011-12-09 11:16:34 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2011-12-09 11:16:34 +0000 |
commit | c178420d8409d86df7e3ecc4765bba71f119cbc7 (patch) | |
tree | 70f6d0770b8c6a9467e4c6246ea2a7dd195c6222 | |
parent | 3be2e00ecd35820776812bf7d5eaabadee7e9c15 (diff) | |
download | mandoc-c178420d8409d86df7e3ecc4765bba71f119cbc7.tar.gz |
Tweak pformatted():
* If the first section is empty, use the file name as .Nd.
* No need to check (len > 0) after successful fgetln(3).
* Improve some comments and strip trailing whitespace.
ok kristaps@
-rw-r--r-- | mandocdb.c | 25 |
1 files changed, 13 insertions, 12 deletions
@@ -1288,29 +1288,30 @@ pformatted(DB *hash, struct buf *buf, struct buf *dbuf, buf_append(buf, of->title); hash_put(hash, buf, TYPE_Nm); - /* Skip to first blank line. */ + /* Skip to first blank line. */ while (NULL != (line = fgetln(stream, &len))) - if (len && '\n' == *line) + if ('\n' == *line) break; - /* - * Skip to first section header. - * This happens when text is flush-left. + /* + * Assume the first line that is not indented + * is the first section header. Skip to it. */ while (NULL != (line = fgetln(stream, &len))) - if (len && '\n' != *line && ' ' != *line) + if ('\n' != *line && ' ' != *line) break; /* - * If no page content can be found or the input line is - * malformed (zer-length or has no trailing newline), reuse the - * page title as the page description. + * If no page content can be found, or the input line + * is already the next section header, or there is no + * trailing newline, reuse the page title as the page + * description. */ line = fgetln(stream, &len); - if (NULL == line || len == 0 || '\n' != line[(int)len - 1]) { + if (NULL == line || ' ' != *line || '\n' != line[(int)len - 1]) { buf_appendb(dbuf, buf->cp, buf->size); hash_put(hash, buf, TYPE_Nd); fclose(stream); @@ -1319,8 +1320,8 @@ pformatted(DB *hash, struct buf *buf, struct buf *dbuf, line[(int)--len] = '\0'; - /* - * Skip to the last dash. + /* + * Skip to the first dash. * Use the remaining line as the description (no more than 70 * bytes). */ |