diff --git a/dtool/src/dtoolutil/filename.cxx b/dtool/src/dtoolutil/filename.cxx index 97b9683adf..b304e6ee97 100644 --- a/dtool/src/dtoolutil/filename.cxx +++ b/dtool/src/dtoolutil/filename.cxx @@ -313,6 +313,19 @@ from_os_specific(const string &os_specific, Filename::Type type) { #endif // WIN32 } +//////////////////////////////////////////////////////////////////// +// Function: Filename::expand_from +// Access: Public, Static +// Description: Returns the same thing as from_os_specific(), but +// embedded environment variable references +// (e.g. "$DMODELS/foo.txt") are expanded out. +//////////////////////////////////////////////////////////////////// +Filename Filename:: +expand_from(const string &os_specific, Filename::Type type) { + return from_os_specific(ExecutionEnvironment::expand_string(os_specific), + type); +} + //////////////////////////////////////////////////////////////////// // Function: Filename::temporary // Access: Public diff --git a/dtool/src/dtoolutil/filename.h b/dtool/src/dtoolutil/filename.h index 943491a6a9..bb53f206e3 100644 --- a/dtool/src/dtoolutil/filename.h +++ b/dtool/src/dtoolutil/filename.h @@ -77,6 +77,8 @@ PUBLISHED: static Filename from_os_specific(const string &os_specific, Type type = T_general); + static Filename expand_from(const string &user_string, + Type type = T_general); static Filename temporary(const string &dirname, const string &prefix, Type type = T_general);