Browse Source

config shouldn't attempt to read directories

David Rose 23 years ago
parent
commit
f0468f5285
1 changed files with 9 additions and 2 deletions
  1. 9 2
      dtool/src/dconfig/configTable.cxx

+ 9 - 2
dtool/src/dconfig/configTable.cxx

@@ -84,7 +84,7 @@ void ConfigTable::ParseConfigFile(istream& is, const ConfigString& Filename)
 {
    ConfigString line;
 
-   while (!is.eof()) {
+   while (!is.eof() && !is.fail()) {
       std::getline(is, line);
       if (microconfig_cat->is_spam())
          microconfig_cat->spam() << "read from " << Filename << ": '" << line
@@ -179,7 +179,14 @@ void ConfigTable::ReadConfigFile(void) {
     if (microconfig_cat->is_spam())
       microconfig_cat->spam() << "examining file '" << config_file << "'"
                                << endl;
-    if (config_file.is_executable()) {
+
+    if (!config_file.is_regular_file()) {
+      if (microconfig_cat->is_spam()) {
+        microconfig_cat->spam()
+          << "file is not a regular file, ignoring.\n";
+      }
+
+    } else if (config_file.is_executable()) {
       ConfigString line = config_file.to_os_specific() + " " + configargs;
       if (microconfig_cat->is_spam())
         microconfig_cat->spam() << "file is executable, running '"