From 8d60466f8a6997e2a863463c340b792300b56743 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Wed, 1 Aug 2007 19:50:28 +0000 Subject: [PATCH] Special handling for some fake dos devices svn path=/trunk/; revision=28081 --- reactos/base/shell/cmd/dir.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/reactos/base/shell/cmd/dir.c b/reactos/base/shell/cmd/dir.c index fd099ffb85e..bf673bf0f2f 100644 --- a/reactos/base/shell/cmd/dir.c +++ b/reactos/base/shell/cmd/dir.c @@ -1320,6 +1320,20 @@ DirPrintFiles(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */ } else if (pszFilePart != NULL) *pszFilePart = _T('\0'); + else + { + len = _tcslen(szTemp); + if (len > 0 && szTemp[len - 1] != _T('\\') && + GetFileAttributes(szTemp) == INVALID_FILE_ATTRIBUTES && + GetLastError() == ERROR_PATH_NOT_FOUND) + { + /* Special case for some fake dos devices, such as con: + GetFullPathName doesn't return a pszFilePart pointer + so we're going to fix this ourselves */ + while (len > 0 && szTemp[len - 1] != _T('\\')) + szTemp[--len] = _T('\0'); + } + } len = _tcslen(szTemp); if ((len != 3 || szTemp[len - 2] != _T(':')) && szTemp[len - 1] == _T('\\'))