diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2015-11-06 14:40:23 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2015-11-12 12:42:19 +0000 |
commit | 1129ef019f10c8c241227f9e787fe6616f74781c (patch) | |
tree | 935bcafa5afc092033b7256a0fb459922389d019 /newlib/doc/makedoc.c | |
parent | 81a7c8c37f9f932ce9969478c618ebf69457e3de (diff) | |
download | cygnal-1129ef019f10c8c241227f9e787fe6616f74781c.tar.gz cygnal-1129ef019f10c8c241227f9e787fe6616f74781c.tar.bz2 cygnal-1129ef019f10c8c241227f9e787fe6616f74781c.zip |
makedoc: Don't interpret license text as a command
Align makedoc's iscommand() with it's documentation, and don't allow commands to
contain a space. A command is a line containing only a sequence of capital
letters or '_', followed by optional spaces.
This prevents "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE" (the only line in the license text which consists of only
capitals and spaces, without any punctuation) from being interepreted as a
makedoc command, leading to:
"Can't find IMPLIED"
"warning, IMPLIED is not recognised"
being emitted by makedoc, (which is normally un-noticed because makedoc's stderr
is redirected to a .ref file)
2015-11-06 Jon Turney <jon.turney@dronecode.org.uk>
* doc/makedoc.c (iscommand): Only allow commands to have trailing
spaces, not space separated words.
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Diffstat (limited to 'newlib/doc/makedoc.c')
-rw-r--r-- | newlib/doc/makedoc.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/newlib/doc/makedoc.c b/newlib/doc/makedoc.c index 718864294..96362f782 100644 --- a/newlib/doc/makedoc.c +++ b/newlib/doc/makedoc.c @@ -777,14 +777,18 @@ DEFUN( iscommand,(ptr, idx), unsigned int idx) { unsigned int len = 0; - while (at(ptr,idx)) { - if (isupper(at(ptr,idx)) || at(ptr,idx) == ' ' || - at(ptr,idx) == '_') - { + + while (isupper(at(ptr,idx)) || at(ptr,idx) == '_') { len++; idx++; - } - else if(at(ptr,idx) == '\n') + } + + while (at(ptr,idx) == ' ') { + len++; + idx++; + } + + if(at(ptr,idx) == '\n') { /* The length check will never fail on a real command * because the commands are screened as the definitions file @@ -792,8 +796,7 @@ DEFUN( iscommand,(ptr, idx), if (len >= MIN_CMDLEN) return 1; return 0; } - else return 0; - } + return 0; } |