Commit 85a14794c812859d9fe30a5a7e9fd0e3471e7882
1 parent
8650677b
Expand environment variables before checking existence of file and directory.
Showing
1 changed file
with
6 additions
and
4 deletions
src/support/GTools.cpp
| @@ -855,7 +855,8 @@ double gammalib::plaw_energy_flux(const double& emin, const double& emax, | @@ -855,7 +855,8 @@ double gammalib::plaw_energy_flux(const double& emin, const double& emax, | ||
| 855 | * @param[in] filename File name. | 855 | * @param[in] filename File name. |
| 856 | * | 856 | * |
| 857 | * Checks if a file exists. If a directory with the same name if found, false | 857 | * Checks if a file exists. If a directory with the same name if found, false |
| 858 | - * is returned. | 858 | + * is returned. The function expands any environment variable prior to |
| 859 | + * checking. | ||
| 859 | ***************************************************************************/ | 860 | ***************************************************************************/ |
| 860 | bool gammalib::file_exists(const std::string& filename) | 861 | bool gammalib::file_exists(const std::string& filename) |
| 861 | { | 862 | { |
| @@ -866,7 +867,7 @@ bool gammalib::file_exists(const std::string& filename) | @@ -866,7 +867,7 @@ bool gammalib::file_exists(const std::string& filename) | ||
| 866 | struct stat info; | 867 | struct stat info; |
| 867 | 868 | ||
| 868 | // Get file information structure | 869 | // Get file information structure |
| 869 | - int ret = stat(filename.c_str(), &info); | 870 | + int ret = stat(gammalib::expand_env(filename).c_str(), &info); |
| 870 | 871 | ||
| 871 | // Check if file is a regular file | 872 | // Check if file is a regular file |
| 872 | if (ret == 0 && S_ISREG(info.st_mode)) { | 873 | if (ret == 0 && S_ISREG(info.st_mode)) { |
| @@ -883,7 +884,8 @@ bool gammalib::file_exists(const std::string& filename) | @@ -883,7 +884,8 @@ bool gammalib::file_exists(const std::string& filename) | ||
| 883 | * | 884 | * |
| 884 | * @param[in] dirname Directory name. | 885 | * @param[in] dirname Directory name. |
| 885 | * | 886 | * |
| 886 | - * Checks if a directory exists. | 887 | + * Checks if a directory exists. The function expands any environment |
| 888 | + * variable prior to checking. | ||
| 887 | ***************************************************************************/ | 889 | ***************************************************************************/ |
| 888 | bool gammalib::dir_exists(const std::string& dirname) | 890 | bool gammalib::dir_exists(const std::string& dirname) |
| 889 | { | 891 | { |
| @@ -894,7 +896,7 @@ bool gammalib::dir_exists(const std::string& dirname) | @@ -894,7 +896,7 @@ bool gammalib::dir_exists(const std::string& dirname) | ||
| 894 | struct stat info; | 896 | struct stat info; |
| 895 | 897 | ||
| 896 | // Get file information structure | 898 | // Get file information structure |
| 897 | - int ret = stat(dirname.c_str(), &info); | 899 | + int ret = stat(gammalib::expand_env(dirname).c_str(), &info); |
| 898 | 900 | ||
| 899 | // Check if we have a directory | 901 | // Check if we have a directory |
| 900 | if (ret == 0 && S_ISDIR(info.st_mode)) { | 902 | if (ret == 0 && S_ISDIR(info.st_mode)) { |