mirror of https://github.com/stella-emu/stella.git
More cleanups to FSNodeWINDOWS.
This commit is contained in:
parent
e63975847f
commit
6e46d46ffa
|
@ -59,8 +59,9 @@ void FSNodeWINDOWS::setFlags()
|
||||||
_isFile = !_isDirectory;//((fileAttribs & FILE_ATTRIBUTE_NORMAL) != 0);
|
_isFile = !_isDirectory;//((fileAttribs & FILE_ATTRIBUTE_NORMAL) != 0);
|
||||||
|
|
||||||
// Add a trailing backslash, if necessary
|
// Add a trailing backslash, if necessary
|
||||||
if (_isDirectory && _path.length() > 0 && _path[_path.length()-1] != '\\')
|
if (_isDirectory && _path.length() > 0 &&
|
||||||
_path += '\\';
|
_path[_path.length()-1] != FSNode::PATH_SEPARATOR)
|
||||||
|
_path += FSNode::PATH_SEPARATOR;
|
||||||
}
|
}
|
||||||
_isPseudoRoot = false;
|
_isPseudoRoot = false;
|
||||||
}
|
}
|
||||||
|
@ -74,7 +75,8 @@ string FSNodeWINDOWS::getShortPath() const
|
||||||
{
|
{
|
||||||
string path = "~";
|
string path = "~";
|
||||||
const char* offset = _path.c_str() + home.length();
|
const char* offset = _path.c_str() + home.length();
|
||||||
if(*offset != '\\') path += '\\';
|
if(*offset != FSNode::PATH_SEPARATOR)
|
||||||
|
path += FSNode::PATH_SEPARATOR;
|
||||||
path += offset;
|
path += offset;
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
@ -149,10 +151,10 @@ bool FSNodeWINDOWS::getChildren(AbstractFSList& myList, ListMode mode) const
|
||||||
if(handle == INVALID_HANDLE_VALUE)
|
if(handle == INVALID_HANDLE_VALUE)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
addFile(myList, mode, _path.c_str(), &desc);
|
addFile(myList, mode, _path, desc);
|
||||||
|
|
||||||
while(FindNextFile(handle, &desc))
|
while(FindNextFile(handle, &desc))
|
||||||
addFile(myList, mode, _path.c_str(), &desc);
|
addFile(myList, mode, _path, desc);
|
||||||
|
|
||||||
FindClose(handle);
|
FindClose(handle);
|
||||||
}
|
}
|
||||||
|
@ -162,16 +164,16 @@ bool FSNodeWINDOWS::getChildren(AbstractFSList& myList, ListMode mode) const
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FSNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode,
|
void FSNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode,
|
||||||
const char* base, const WIN32_FIND_DATA* find_data)
|
const string& base, const WIN32_FIND_DATA& find_data)
|
||||||
{
|
{
|
||||||
const char* const asciiName = find_data->cFileName;
|
const char* const asciiName = find_data.cFileName;
|
||||||
bool isDirectory = false, isFile = false;
|
bool isDirectory = false, isFile = false;
|
||||||
|
|
||||||
// Skip local directory (.) and parent (..)
|
// Skip local directory (.) and parent (..)
|
||||||
if (!strncmp(asciiName, ".", 1) || !strncmp(asciiName, "..", 2))
|
if (!strncmp(asciiName, ".", 1) || !strncmp(asciiName, "..", 2))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
isDirectory = static_cast<bool>(find_data->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
|
isDirectory = static_cast<bool>(find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
|
||||||
isFile = !isDirectory;//(find_data->dwFileAttributes & FILE_ATTRIBUTE_NORMAL ? true : false);
|
isFile = !isDirectory;//(find_data->dwFileAttributes & FILE_ATTRIBUTE_NORMAL ? true : false);
|
||||||
|
|
||||||
if ((isFile && mode == FSNode::ListMode::DirectoriesOnly) ||
|
if ((isFile && mode == FSNode::ListMode::DirectoriesOnly) ||
|
||||||
|
@ -185,7 +187,7 @@ void FSNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode,
|
||||||
entry._path = base;
|
entry._path = base;
|
||||||
entry._path += asciiName;
|
entry._path += asciiName;
|
||||||
if (entry._isDirectory)
|
if (entry._isDirectory)
|
||||||
entry._path += "\\";
|
entry._path += FSNode::PATH_SEPARATOR;
|
||||||
entry._isPseudoRoot = false;
|
entry._isPseudoRoot = false;
|
||||||
|
|
||||||
list.emplace_back(make_shared<FSNodeWINDOWS>(entry));
|
list.emplace_back(make_shared<FSNodeWINDOWS>(entry));
|
||||||
|
@ -217,7 +219,6 @@ bool FSNodeWINDOWS::makeDir()
|
||||||
setFlags();
|
setFlags();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,6 +230,5 @@ bool FSNodeWINDOWS::rename(const string& newfile)
|
||||||
setFlags();
|
setFlags();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ class FSNodeWINDOWS : public AbstractFSNode
|
||||||
* @param find_data Describes a file that the FindFirstFile, FindFirstFileEx, or FindNextFile functions find.
|
* @param find_data Describes a file that the FindFirstFile, FindFirstFileEx, or FindNextFile functions find.
|
||||||
*/
|
*/
|
||||||
static void addFile(AbstractFSList& list, ListMode mode,
|
static void addFile(AbstractFSList& list, ListMode mode,
|
||||||
const char* base, const WIN32_FIND_DATA* find_data);
|
const string& base, const WIN32_FIND_DATA& find_data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
string _displayName, _path;
|
string _displayName, _path;
|
||||||
|
|
Loading…
Reference in New Issue