diff options
author | Max Horn | 2007-12-09 17:28:29 +0000 |
---|---|---|
committer | Max Horn | 2007-12-09 17:28:29 +0000 |
commit | 66a1c085c0bf09f9e42cc68e7514ecf1197f62c8 (patch) | |
tree | e91979e720890ea5a1718b7d8d89875d5b09c82a /backends/fs/posix | |
parent | c84d9c1588ec3c7531dd4c0146369e6b35e5c059 (diff) | |
download | scummvm-rg350-66a1c085c0bf09f9e42cc68e7514ecf1197f62c8.tar.gz scummvm-rg350-66a1c085c0bf09f9e42cc68e7514ecf1197f62c8.tar.bz2 scummvm-rg350-66a1c085c0bf09f9e42cc68e7514ecf1197f62c8.zip |
Expand ~/ to the HOME env var (see also patch #1846545)
svn-id: r29797
Diffstat (limited to 'backends/fs/posix')
-rw-r--r-- | backends/fs/posix/posix-fs.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/backends/fs/posix/posix-fs.cpp b/backends/fs/posix/posix-fs.cpp index 8d455b99e3..436e0908dd 100644 --- a/backends/fs/posix/posix-fs.cpp +++ b/backends/fs/posix/posix-fs.cpp @@ -143,7 +143,19 @@ POSIXFilesystemNode::POSIXFilesystemNode() { POSIXFilesystemNode::POSIXFilesystemNode(const String &p, bool verify) { assert(p.size() > 0); - _path = p; + // Expand "~/" to the value of the HOME env variable + if (p.hasPrefix("~/")) { + const char *home = getenv("HOME"); + if (home != NULL && strlen(home) < MAXPATHLEN) { + _path = home; + // Skip over the tilda. We know that p contains at least + // two chars, so this is safe: + _path += p.c_str() + 1; + } + } else { + _path = p; + } + _displayName = lastPathComponent(_path); if (verify) { |