From 2bfd17cf8d6202d944314ff3f6963d9140705d9c Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Thu, 9 Mar 2017 10:20:14 +0100 Subject: [PATCH] ENH: add 'wmkdep' to warnings and error messages from wmkdep - makes it possible to filter out or highlight messages originating from wmkdep in the build process. --- wmake/src/wmkdep.l | 69 +++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index 4b0aeaa85a6..d1a7805621f 100644 --- a/wmake/src/wmkdep.l +++ b/wmake/src/wmkdep.l @@ -42,11 +42,12 @@ Usage #define FILE_STACK_SIZE 300 #define HASH_TABLE_SIZE 500 +#include <errno.h> #include <stdlib.h> +#include <stdio.h> #include <string.h> -#include <sys/types.h> -#include <dirent.h> -#include <errno.h> +#include <sys/types.h> // POSIX +#include <dirent.h> // POSIX void nextFile(const char* fileName); void importFile(const char* fileName); @@ -54,6 +55,10 @@ void importDir(const char* dirName); #undef yywrap /* sometimes a macro by default */ +/* The executable name (for messages), without requiring access to argv[] */ +#define EXENAME "wmkdep" + + %} %x CMNT CFNAME SCFNAME JFNAME FFNAME @@ -145,28 +150,23 @@ const char* bufferPaths[FILE_STACK_SIZE]; int main(int argc, char* argv[]) { char *basePos, *dotPos; - int i, silent; + int i; if (argc < 2) { - fprintf(stderr, "input file not supplied\n"); + fputs(EXENAME ": input file not supplied\n", stderr); return 1; } else if (!strncmp(argv[1], "-h", 2)) /* -h, -help */ { - fprintf + fputs ( - stderr, - "\nUsage: %s [-Idir ... -Idir] [-iheader .. -iheader] filename\n\n", - "wmkdep" - ); - - fprintf - ( - stderr, + "\nUsage: " EXENAME + " [-Idir ... -Idir] [-iheader .. -iheader] filename\n\n" " -Idir Directories to be searched for headers.\n" " -iheader Headers to be ignored.\n\n" - "Dependency list generator, similar to 'cpp -M'\n\n" + "Dependency list generator, similar to 'cpp -M'\n\n", + stderr ); return 0; @@ -192,7 +192,7 @@ int main(int argc, char* argv[]) fprintf ( stderr, - "cannot find extension in source file name %s\n", + EXENAME ": cannot find extension in source file name '%s'\n", sourceFile ); return 1; @@ -306,8 +306,8 @@ void nextFile(const char* fileName) fprintf ( stderr, - "depth of file search exceeds stack size %d " - "while opening %s for file %s\n", + EXENAME ": depth of file search exceeds stack size %d " + "while opening '%s' for file '%s'\n", FILE_STACK_SIZE, fileName, sourceFile ); exit(1); @@ -341,7 +341,7 @@ void nextFile(const char* fileName) if (!(newyyin = fopen(fileName, "r"))) { int d; - for (d=0; d<nDirectories; d++) + for (d=0; d<nDirectories; ++d) { char* pathName = addDirectoryName(directories[d], fileName); @@ -362,24 +362,17 @@ void nextFile(const char* fileName) free(pathName); } - if (nDirectories == 0) - { - fprintf - ( - stderr, - "could not open file %s for source file %s\n", - fileName, sourceFile - ); - } - else + fprintf + ( + stderr, + EXENAME ": could not open file '%s' for source file '%s'", + fileName, sourceFile + ); + if (nDirectories) { - fprintf - ( - stderr, - "could not open file %s for source file %s due to %s\n", - fileName, sourceFile, strerror(errno) - ); + fprintf(stderr, ": %s", strerror(errno)); } + fputs("\n", stderr); fflush(stdout); fflush(stderr); @@ -405,10 +398,10 @@ void nextFile(const char* fileName) */ void dotToSlash(char* fileName) { - int i, len; - len = strlen(fileName); + const size_t len = strlen(fileName); + size_t i; - for (i=0; i<len; i++) + for (i=0; i<len; ++i) { if (fileName[i] == '.') fileName[i] = '/'; } -- GitLab