diff options
Diffstat (limited to 'soltools')
-rw-r--r-- | soltools/mkdepend/def.h | 1 | ||||
-rw-r--r-- | soltools/mkdepend/main.c | 12 | ||||
-rw-r--r-- | soltools/mkdepend/pr.c | 34 |
3 files changed, 43 insertions, 4 deletions
diff --git a/soltools/mkdepend/def.h b/soltools/mkdepend/def.h index 1ec838231d68..1c0e91a811c9 100644 --- a/soltools/mkdepend/def.h +++ b/soltools/mkdepend/def.h @@ -181,6 +181,7 @@ void add_include(struct filepointer *filep, struct inclist *file, int match(register char *str, register char **list); void recursive_pr_include(register struct inclist *head, register char *file, register char *base); +void recursive_pr_dummy(register struct inclist *head, register char *file); void inc_clean(); void fatalerr(char *, ...); diff --git a/soltools/mkdepend/main.c b/soltools/mkdepend/main.c index 5beb8fdf981e..149bae1e62da 100644 --- a/soltools/mkdepend/main.c +++ b/soltools/mkdepend/main.c @@ -461,6 +461,9 @@ int main(argc, argv) freefile(filecontent); recursive_pr_include(ip, ip->i_file, base_name(*fp)); + if (printed) + fwrite("\n\n", 2, 1, stdout); + recursive_pr_dummy(ip, ip->i_file); inc_clean(); } if (printed) @@ -660,6 +663,14 @@ void redirect(line, makefile) char *line, *makefile; { + FILE *fdout; + fdout = freopen(makefile, "wb", stdout); // binary mode please + if (fdout == NULL) + fatalerr("cannot open \"%s\"\n", makefile); + (void) line; + + // don't need any of that nonsense +#if 0 struct stat st; FILE *fdin, *fdout; char backup[ BUFSIZ ], @@ -724,6 +735,7 @@ void redirect(line, makefile) fchmod(fileno(fdout), st.st_mode); #endif /* USGISH */ fclose(fdin); +#endif } void fatalerr(char *msg, ...) diff --git a/soltools/mkdepend/pr.c b/soltools/mkdepend/pr.c index f472f28ebd75..e6200781b465 100644 --- a/soltools/mkdepend/pr.c +++ b/soltools/mkdepend/pr.c @@ -79,6 +79,29 @@ void add_include(struct filepointer *filep, struct inclist *file, struct inclist } } +void pr_dummy(ip) + register struct inclist *ip; +{ + fwrite(ip->i_file, strlen(ip->i_file), 1, stdout); + fwrite(" :\n\n", 4, 1, stdout); +} + +void recursive_pr_dummy(head, file) + register struct inclist *head; + register char *file; +{ + register int i; + + if (head->i_marked == 2) + return; + head->i_marked = 2; // it's a large boolean... + if (head->i_file != file) + pr_dummy(head, file); + for (i=0; i<head->i_listlen; i++) + recursive_pr_dummy(head->i_list[ i ], file); +} + + void recursive_pr_include(head, file, base) register struct inclist *head; register char *file, *base; @@ -105,16 +128,19 @@ size_t pr(ip, file, base) char buf[ BUFSIZ ]; printed = TRUE; - len = (int)strlen(ip->i_file)+1; - if (current_len + len > width || file != lastfile) { + len = (int)strlen(ip->i_file)+4; + if (file != lastfile) { lastfile = file; - sprintf(buf, "\n%s%s%s: %s", objprefix, base, objsuffix, + sprintf(buf, "\n%s%s%s: \\\n %s", objprefix, base, objsuffix, ip->i_file); len = current_len = (int)strlen(buf); } else { buf[0] = ' '; - strcpy(buf+1, ip->i_file); + buf[1] = '\\'; + buf[2] = '\n'; + buf[3] = ' '; + strcpy(buf+4, ip->i_file); current_len += len; } ret = fwrite(buf, len, 1, stdout); |