diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2017-12-04 21:24:55 +0300 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2017-12-07 14:54:57 +0300 |
commit | 06bd0ecc8dc472e3b2c3d54de994c11122559ee2 (patch) | |
tree | e6ac7c95bb4a61dfa4590bc9d4d1c61a9a337ae1 /newlib/doc/makedoc.c | |
parent | c006fd459f4df832b24e6c7a32228e154a0261ba (diff) |
makedoc: exit with non-zero status on error
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Diffstat (limited to 'newlib/doc/makedoc.c')
-rw-r--r-- | newlib/doc/makedoc.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/newlib/doc/makedoc.c b/newlib/doc/makedoc.c index fdcc5b926..45ddfb81e 100644 --- a/newlib/doc/makedoc.c +++ b/newlib/doc/makedoc.c @@ -1113,9 +1113,10 @@ DEFUN(lookup_word,(word), } -static void DEFUN_VOID(perform) +static int DEFUN_VOID(perform) { tos = stack; + int errors = 0; while (at(ptr, idx)) { /* It's worth looking through the command list */ @@ -1140,6 +1141,7 @@ static void DEFUN_VOID(perform) else { fprintf(stderr,"warning, %s is not recognised\n", next); + errors++; skip_past_newline(); } @@ -1147,6 +1149,7 @@ static void DEFUN_VOID(perform) else skip_past_newline(); } + return errors; } dict_type * @@ -1220,6 +1223,8 @@ DEFUN(compile, (string), int ret=0; /* add words to the dictionary */ char *word; + dict_type *lookup; + string = nextword(string, &word); while (string && *string && word[0]) { @@ -1275,7 +1280,9 @@ DEFUN(compile, (string), break; default: add_to_definition(ptr, call); - add_to_definition(ptr, lookup_word(word)); + lookup = lookup_word(word); + if (!lookup) ret++; + add_to_definition(ptr, lookup); } string = nextword(string, &word); @@ -1349,7 +1356,7 @@ int ac AND char *av[]) { unsigned int i; - + int status = 0; string_type buffer; string_type pptr; @@ -1410,7 +1417,7 @@ char *av[]) read_in(&b, f); if( compile(b.ptr) ) { fclose(f); exit(1); } - perform(); + status = perform(); fclose(f); } else if (av[i][1] == 'i') @@ -1425,8 +1432,5 @@ char *av[]) } write_buffer(stack+0); - return 0; + return status; } - - - |