]> sourceware.org Git - newlib-cygwin.git/commitdiff
makedoc: Don't interpret license text as a command
authorJon Turney <jon.turney@dronecode.org.uk>
Fri, 6 Nov 2015 14:40:23 +0000 (14:40 +0000)
committerJon Turney <jon.turney@dronecode.org.uk>
Thu, 12 Nov 2015 12:42:19 +0000 (12:42 +0000)
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>
newlib/ChangeLog
newlib/doc/makedoc.c

index 34b0c794a1a02320d62cc57cceea8d1c0aba5fae..bc0ec2411c492d155e7746ac78eb29bd8626c085 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2015-11-06  Jon Turney  <jon.turney@dronecode.org.uk>
 
        * libm/mathfp/s_acos.c: Fix QUICKREF.
index 7188642947774706ba45d112082d232c2fbf0880..96362f7824190050ed53b3e47a775de83d9ca5a3 100644 (file)
@@ -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;
 
 }
This page took 0.051147 seconds and 5 git commands to generate.