Fix displaying the free space on the volume

svn path=/trunk/; revision=28077
This commit is contained in:
Thomas Bluemel 2007-08-01 18:36:23 +00:00
parent 790a3ef810
commit 604b0f6c03
2 changed files with 14 additions and 8 deletions

View file

@ -898,7 +898,6 @@ PrintSummary(LPTSTR szPath,
} }
else else
{ {
/* Print File Summary */ /* Print File Summary */
/* Condition to print summary is: /* Condition to print summary is:
If we are not in bare format and if we have results! */ If we are not in bare format and if we have results! */
@ -908,7 +907,6 @@ PrintSummary(LPTSTR szPath,
ConOutPrintfPaging(FALSE,szMsg,ulFiles, szBuffer); ConOutPrintfPaging(FALSE,szMsg,ulFiles, szBuffer);
else else
ConOutPrintf(szMsg,ulFiles, szBuffer); ConOutPrintf(szMsg,ulFiles, szBuffer);
} }
/* Print total directories and freespace */ /* Print total directories and freespace */
@ -1785,9 +1783,10 @@ INT
CommandDir(LPTSTR first, LPTSTR rest) CommandDir(LPTSTR first, LPTSTR rest)
{ {
TCHAR dircmd[256]; /* A variable to store the DIRCMD enviroment variable */ TCHAR dircmd[256]; /* A variable to store the DIRCMD enviroment variable */
TCHAR volume[MAX_PATH]; TCHAR path[MAX_PATH];
TCHAR prev_volume[MAX_PATH]; TCHAR prev_volume[MAX_PATH];
LPTSTR* params = NULL; LPTSTR* params = NULL;
LPTSTR pszFilePart;
INT entries = 0; INT entries = 0;
UINT loop = 0; UINT loop = 0;
DIRSWITCHFLAGS stFlags; DIRSWITCHFLAGS stFlags;
@ -1881,13 +1880,20 @@ CommandDir(LPTSTR first, LPTSTR rest)
ChangedVolume = TRUE; ChangedVolume = TRUE;
if (!stFlags.bBareFormat && if (!stFlags.bBareFormat &&
GetVolumePathName(params[loop], volume, sizeof(volume) / sizeof(TCHAR))) GetVolumePathName(params[loop], path, sizeof(path) / sizeof(TCHAR)))
{ {
if (!_tcscmp(volume, prev_volume)) if (!_tcscmp(path, prev_volume))
ChangedVolume = FALSE; ChangedVolume = FALSE;
else else
_tcscpy(prev_volume, volume); _tcscpy(prev_volume, path);
} }
else if (GetFullPathName(params[loop], sizeof(path) / sizeof(TCHAR), path, &pszFilePart) != 0)
{
if (pszFilePart != NULL)
*pszFilePart = _T('\0');
}
else
_tcscpy(path, params[loop]);
if (ChangedVolume && !stFlags.bBareFormat) { if (ChangedVolume && !stFlags.bBareFormat) {
if (!PrintDirectoryHeader (params[loop], &stFlags)) { if (!PrintDirectoryHeader (params[loop], &stFlags)) {
@ -1904,7 +1910,7 @@ CommandDir(LPTSTR first, LPTSTR rest)
} }
/* print the footer */ /* print the footer */
PrintSummary(params[loop], PrintSummary(path,
recurse_file_cnt, recurse_file_cnt,
recurse_dir_cnt, recurse_dir_cnt,
recurse_bytes, recurse_bytes,

View file

@ -206,7 +206,7 @@ STRING_DIR_HELP2, " Volume in drive %c is %s\n"
STRING_DIR_HELP3, " Volume in drive %c has no label.\n" STRING_DIR_HELP3, " Volume in drive %c has no label.\n"
STRING_DIR_HELP4, " Volume Serial Number is %04X-%04X\n" STRING_DIR_HELP4, " Volume Serial Number is %04X-%04X\n"
STRING_DIR_HELP5, "\n Total Files Listed:\n%16i File(s)% 14s bytes\n" STRING_DIR_HELP5, "\n Total Files Listed:\n%16i File(s)% 14s bytes\n"
STRING_DIR_HELP6, "%16i Dir(s)% 15s bytes\n" STRING_DIR_HELP6, "%16i Dir(s)% 15s bytes free\n"
STRING_DIR_HELP7, "\n Directory of %s\n\n" STRING_DIR_HELP7, "\n Directory of %s\n\n"
STRING_DIR_HELP8, "%16i File(s)% 14s bytes\n" STRING_DIR_HELP8, "%16i File(s)% 14s bytes\n"