浏览代码

COMP: Get it to compile on Borland 5.5, too. Including stl headers here does not work, because with Borland 5.5 stl headers pull in windef.h which typedefs WORD which is in the fortran tokens list...

David Cole 18 年之前
父节点
当前提交
e6912431c8
共有 1 个文件被更改,包括 14 次插入3 次删除
  1. 14 3
      Source/cmDependsFortranParser.cxx

+ 14 - 3
Source/cmDependsFortranParser.cxx

@@ -183,7 +183,7 @@ Modify cmDependsFortranParser.cxx:
 #define cmDependsFortranParser_cxx
 #include "cmDependsFortranParser.h" /* Interface to parser object.  */
 #include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL.  */
-#include "cmSystemTools.h"
+#include <ctype.h> // for tolower
 
 /* Configure the parser to use a lexer object.  */
 #define YYPARSE_PARAM yyscanner
@@ -205,8 +205,19 @@ static void cmDependsFortranError(yyscan_t yyscanner, const char* message)
 static bool cmDependsFortranParserIsKeyword(const char* word,
                                             const char* keyword)
 {
-  return (strlen(word) == strlen(keyword) &&
-          cmSystemTools::LowerCase(word) == keyword);
+  size_t len = strlen(word);
+  if (len != strlen(keyword))
+    {
+    return false;
+    }
+  for (size_t i = 0; i < len; ++i)
+    {
+    if (tolower(word[i]) != tolower(keyword[i]))
+      {
+      return false;
+      }
+    }
+  return true;
 }
 
 /* Disable some warnings in the generated code.  */