Expand ~/ to the HOME env var (see also patch #1846545)

svn-id: r29797
This commit is contained in:
Max Horn 2007-12-09 17:28:29 +00:00
parent c84d9c1588
commit 66a1c085c0
2 changed files with 15 additions and 1 deletions

2
NEWS
View File

@ -26,6 +26,8 @@ For a more comprehensive changelog for the latest experimental SVN code, see:
- Improved detection of new game variants and localized versions. - Improved detection of new game variants and localized versions.
- Completely reworked internal access to files. (GSoC Task) - Completely reworked internal access to files. (GSoC Task)
- Added option to delete games from the list with Del key. - Added option to delete games from the list with Del key.
- Added support for "~/" prefix being substituted by $HOME in paths
on POSIX systems (Linux, Mac OS X etc.).
AGI: AGI:
- Added support for AGI256 and AGI256-2 hacks (GSoC Task) - Added support for AGI256 and AGI256-2 hacks (GSoC Task)

View File

@ -143,7 +143,19 @@ POSIXFilesystemNode::POSIXFilesystemNode() {
POSIXFilesystemNode::POSIXFilesystemNode(const String &p, bool verify) { POSIXFilesystemNode::POSIXFilesystemNode(const String &p, bool verify) {
assert(p.size() > 0); 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); _displayName = lastPathComponent(_path);
if (verify) { if (verify) {