Author: pschweitzer
Date: Tue Aug 25 20:35:51 2015
New Revision: 68823
URL:
http://svn.reactos.org/svn/reactos?rev=68823&view=rev
Log:
[CMD]
Implement switch /R for dir command.
It allows enumerating alternate data streams of files
Commit dedicated to Ged
Modified:
trunk/reactos/base/shell/cmd/dir.c
trunk/reactos/base/shell/cmd/lang/cs-CZ.rc
trunk/reactos/base/shell/cmd/lang/de-DE.rc
trunk/reactos/base/shell/cmd/lang/el-GR.rc
trunk/reactos/base/shell/cmd/lang/en-US.rc
trunk/reactos/base/shell/cmd/lang/es-ES.rc
trunk/reactos/base/shell/cmd/lang/fr-FR.rc
trunk/reactos/base/shell/cmd/lang/hu-HU.rc
trunk/reactos/base/shell/cmd/lang/id-ID.rc
trunk/reactos/base/shell/cmd/lang/it-IT.rc
trunk/reactos/base/shell/cmd/lang/ja-JP.rc
trunk/reactos/base/shell/cmd/lang/no-NO.rc
trunk/reactos/base/shell/cmd/lang/pl-PL.rc
trunk/reactos/base/shell/cmd/lang/ro-RO.rc
trunk/reactos/base/shell/cmd/lang/ru-RU.rc
trunk/reactos/base/shell/cmd/lang/sk-SK.rc
trunk/reactos/base/shell/cmd/lang/sq-AL.rc
trunk/reactos/base/shell/cmd/lang/sv-SE.rc
trunk/reactos/base/shell/cmd/lang/tr-TR.rc
trunk/reactos/base/shell/cmd/lang/uk-UA.rc
trunk/reactos/base/shell/cmd/lang/zh-CN.rc
Modified: trunk/reactos/base/shell/cmd/dir.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/dir.c?rev=6…
==============================================================================
--- trunk/reactos/base/shell/cmd/dir.c [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/dir.c [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -132,6 +132,9 @@
* Removed variables formerly in use to handle pagination
* Pagination belongs to ConOutPrintfPaging
* Removed already commented out code of old pagination
+ *
+ * 25-Aug-2015 (Pierre Schweitzer)
+ * Implemented /R switch
*/
#include "precomp.h"
@@ -172,6 +175,7 @@
BOOL bRecursive; /* Displays files in specified directory and all sub */
BOOL bShortName; /* Displays the sort name of files if exist */
BOOL b4Digit; /* Four digit year */
+ BOOL bDataStreams; /* Displays alternate data streams */
struct
{
DWORD dwAttribVal; /* The desired state of attribute */
@@ -189,9 +193,21 @@
} stTimeField; /* The time field to display or use for sorting */
} DIRSWITCHFLAGS, *LPDIRSWITCHFLAGS;
+typedef struct _DIRFINDSTREAMNODE
+{
+ WIN32_FIND_STREAM_DATA stStreamInfo;
+ struct _DIRFINDSTREAMNODE *ptrNext;
+} DIRFINDSTREAMNODE, *PDIRFINDSTREAMNODE;
+
+typedef struct _DIRFINDINFO
+{
+ WIN32_FIND_DATA stFindInfo;
+ PDIRFINDSTREAMNODE ptrHead;
+} DIRFINDINFO, *PDIRFINDINFO;
+
typedef struct _DIRFINDLISTNODE
{
- WIN32_FIND_DATA stFindInfo;
+ DIRFINDINFO stInfo;
struct _DIRFINDLISTNODE *ptrNext;
} DIRFINDLISTNODE, *PDIRFINDLISTNODE;
@@ -325,6 +341,8 @@
lpFlags->bRecursive = ! bNegative;
else if (cCurUChar == _T('X'))
lpFlags->bShortName = ! bNegative;
+ else if (cCurChar == _T('R'))
+ lpFlags->bDataStreams = ! bNegative;
else if (cCurChar == _T('4'))
lpFlags->b4Digit = ! bNegative;
else if (cCurChar == _T('?'))
@@ -838,7 +856,7 @@
* The function that prints in new style
*/
static VOID
-DirPrintNewList(LPWIN32_FIND_DATA ptrFiles[], /* [IN]Files' Info */
+DirPrintNewList(PDIRFINDINFO ptrFiles[], /* [IN]Files' Info */
DWORD dwCount, /* [IN] The quantity of files */
TCHAR *szCurPath, /* [IN] Full path of current directory
*/
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@@ -850,17 +868,18 @@
TCHAR szTime[20];
INT iSizeFormat;
ULARGE_INTEGER u64FileSize;
+ PDIRFINDSTREAMNODE ptrCurStream;
for (i = 0; i < dwCount && !bCtrlBreak; i++)
{
/* Calculate size */
- if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+ if (ptrFiles[i]->stFindInfo.dwFileAttributes &
FILE_ATTRIBUTE_REPARSE_POINT)
{
/* Junction */
iSizeFormat = -14;
_tcscpy(szSize, _T("<JUNCTION>"));
}
- else if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+ else if (ptrFiles[i]->stFindInfo.dwFileAttributes &
FILE_ATTRIBUTE_DIRECTORY)
{
/* Directory */
iSizeFormat = -14;
@@ -870,18 +889,18 @@
{
/* File */
iSizeFormat = 14;
- u64FileSize.HighPart = ptrFiles[i]->nFileSizeHigh;
- u64FileSize.LowPart = ptrFiles[i]->nFileSizeLow;
+ u64FileSize.HighPart = ptrFiles[i]->stFindInfo.nFileSizeHigh;
+ u64FileSize.LowPart = ptrFiles[i]->stFindInfo.nFileSizeLow;
ConvertULargeInteger(u64FileSize.QuadPart, szSize, 20,
lpFlags->bTSeperator);
}
/* Calculate short name */
szShortName[0] = _T('\0');
if (lpFlags->bShortName)
- _stprintf(szShortName, _T(" %-12s"),
ptrFiles[i]->cAlternateFileName);
+ _stprintf(szShortName, _T(" %-12s"),
ptrFiles[i]->stFindInfo.cAlternateFileName);
/* Format date and time */
- DirPrintFileDateTime(szDate, szTime, ptrFiles[i], lpFlags);
+ DirPrintFileDateTime(szDate, szTime, &ptrFiles[i]->stFindInfo, lpFlags);
/* Print the line */
DirPrintf(lpFlags, _T("%10s %-6s %*s%s %s\n"),
@@ -890,7 +909,25 @@
iSizeFormat,
szSize,
szShortName,
- ptrFiles[i]->cFileName);
+ ptrFiles[i]->stFindInfo.cFileName);
+
+ /* Now, loop on the streams */
+ ptrCurStream = ptrFiles[i]->ptrHead;
+ while (ptrCurStream)
+ {
+ ConvertULargeInteger(ptrCurStream->stStreamInfo.StreamSize.QuadPart,
szSize, 20, lpFlags->bTSeperator);
+
+ /* Print the line */
+ DirPrintf(lpFlags, _T("%10s %-6s %*s%s %s%s\n"),
+ L"",
+ L"",
+ 16,
+ szSize,
+ L"",
+ ptrFiles[i]->stFindInfo.cFileName,
+ ptrCurStream->stStreamInfo.cStreamName);
+ ptrCurStream = ptrCurStream->ptrNext;
+ }
}
}
@@ -901,7 +938,7 @@
* The function that prints in wide list
*/
static VOID
-DirPrintWideList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
+DirPrintWideList(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The quantity of files */
TCHAR *szCurPath, /* [IN] Full path of current directory
*/
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@@ -919,16 +956,16 @@
iLongestName = 1;
for (i = 0; i < dwCount; i++)
{
- if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+ if (ptrFiles[i]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
/* Directories need 2 additinal characters for brackets */
- if ((_tcslen(ptrFiles[i]->cFileName) + 2) > iLongestName)
- iLongestName = _tcslen(ptrFiles[i]->cFileName) + 2;
+ if ((_tcslen(ptrFiles[i]->stFindInfo.cFileName) + 2) > iLongestName)
+ iLongestName = _tcslen(ptrFiles[i]->stFindInfo.cFileName) + 2;
}
else
{
- if (_tcslen(ptrFiles[i]->cFileName) > iLongestName)
- iLongestName = _tcslen(ptrFiles[i]->cFileName);
+ if (_tcslen(ptrFiles[i]->stFindInfo.cFileName) > iLongestName)
+ iLongestName = _tcslen(ptrFiles[i]->stFindInfo.cFileName);
}
}
@@ -963,10 +1000,10 @@
if (temp >= dwCount) break;
- if (ptrFiles[temp]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- _stprintf(szTempFname, _T("[%s]"),
ptrFiles[temp]->cFileName);
+ if (ptrFiles[temp]->stFindInfo.dwFileAttributes &
FILE_ATTRIBUTE_DIRECTORY)
+ _stprintf(szTempFname, _T("[%s]"),
ptrFiles[temp]->stFindInfo.cFileName);
else
- _stprintf(szTempFname, _T("%s"),
ptrFiles[temp]->cFileName);
+ _stprintf(szTempFname, _T("%s"),
ptrFiles[temp]->stFindInfo.cFileName);
DirPrintf(lpFlags, _T("%-*s"), iLongestName + 1, szTempFname);
}
@@ -983,7 +1020,7 @@
* The function that prints in old style
*/
static VOID
-DirPrintOldList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
+DirPrintOldList(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The quantity of files */
TCHAR * szCurPath, /* [IN] Full path of current directory
*/
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@@ -999,21 +1036,21 @@
for (i = 0; i < dwCount && !bCtrlBreak; i++)
{
/* Broke 8.3 format */
- if (*ptrFiles[i]->cAlternateFileName )
+ if (*ptrFiles[i]->stFindInfo.cAlternateFileName )
{
/* If the file is long named then we read the alter name */
- getName( ptrFiles[i]->cAlternateFileName, szName);
- _tcscpy(szExt, getExt( ptrFiles[i]->cAlternateFileName));
+ getName( ptrFiles[i]->stFindInfo.cAlternateFileName, szName);
+ _tcscpy(szExt, getExt( ptrFiles[i]->stFindInfo.cAlternateFileName));
}
else
{
/* If the file is not long name we read its original name */
- getName( ptrFiles[i]->cFileName, szName);
- _tcscpy(szExt, getExt( ptrFiles[i]->cFileName));
+ getName( ptrFiles[i]->stFindInfo.cFileName, szName);
+ _tcscpy(szExt, getExt( ptrFiles[i]->stFindInfo.cFileName));
}
/* Calculate size */
- if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+ if (ptrFiles[i]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
/* Directory, no size it's a directory*/
iSizeFormat = -17;
@@ -1023,13 +1060,13 @@
{
/* File */
iSizeFormat = 17;
- u64FileSize.HighPart = ptrFiles[i]->nFileSizeHigh;
- u64FileSize.LowPart = ptrFiles[i]->nFileSizeLow;
+ u64FileSize.HighPart = ptrFiles[i]->stFindInfo.nFileSizeHigh;
+ u64FileSize.LowPart = ptrFiles[i]->stFindInfo.nFileSizeLow;
ConvertULargeInteger(u64FileSize.QuadPart, szSize, 20,
lpFlags->bTSeperator);
}
/* Format date and time */
- DirPrintFileDateTime(szDate,szTime,ptrFiles[i],lpFlags);
+ DirPrintFileDateTime(szDate,szTime,&ptrFiles[i]->stFindInfo,lpFlags);
/* Print the line */
DirPrintf(lpFlags, _T("%-8s %-3s %*s %s %s\n"),
@@ -1048,7 +1085,7 @@
* The function that prints in bare format
*/
static VOID
-DirPrintBareList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
+DirPrintBareList(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The number of files */
LPTSTR lpCurPath, /* [IN] Full path of current directory
*/
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@@ -1057,8 +1094,8 @@
for (i = 0; i < dwCount && !bCtrlBreak; i++)
{
- if ((_tcscmp(ptrFiles[i]->cFileName, _T(".")) == 0) ||
- (_tcscmp(ptrFiles[i]->cFileName, _T("..")) == 0))
+ if ((_tcscmp(ptrFiles[i]->stFindInfo.cFileName, _T(".")) == 0) ||
+ (_tcscmp(ptrFiles[i]->stFindInfo.cFileName, _T("..")) == 0))
{
/* at bare format we don't print "." and ".." folder
*/
continue;
@@ -1066,12 +1103,12 @@
if (lpFlags->bRecursive)
{
/* at recursive mode we print full path of file */
- DirPrintf(lpFlags, _T("%s\\%s\n"), lpCurPath,
ptrFiles[i]->cFileName);
+ DirPrintf(lpFlags, _T("%s\\%s\n"), lpCurPath,
ptrFiles[i]->stFindInfo.cFileName);
}
else
{
/* if we are not in recursive mode we print the file names */
- DirPrintf(lpFlags, _T("%s\n"), ptrFiles[i]->cFileName);
+ DirPrintf(lpFlags, _T("%s\n"),
ptrFiles[i]->stFindInfo.cFileName);
}
}
}
@@ -1083,7 +1120,7 @@
* The functions that prints the files list
*/
static VOID
-DirPrintFiles(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
+DirPrintFiles(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The quantity of files */
TCHAR *szCurPath, /* [IN] Full path of current directory */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@@ -1139,8 +1176,8 @@
* Compares 2 files based on the order criteria
*/
static BOOL
-CompareFiles(LPWIN32_FIND_DATA lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of file 1
*/
- LPWIN32_FIND_DATA lpFile2, /* [IN] A pointer to WIN32_FIND_DATA of file 2
*/
+CompareFiles(PDIRFINDINFO lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of file 1
*/
+ PDIRFINDINFO lpFile2, /* [IN] A pointer to WIN32_FIND_DATA of file 2
*/
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags that we use to list */
{
ULARGE_INTEGER u64File1;
@@ -1157,10 +1194,10 @@
{
case ORDER_SIZE: /* Order by size /o:s */
/* concat the 32bit integers to a 64bit */
- u64File1.LowPart = lpFile1->nFileSizeLow;
- u64File1.HighPart = lpFile1->nFileSizeHigh;
- u64File2.LowPart = lpFile2->nFileSizeLow;
- u64File2.HighPart = lpFile2->nFileSizeHigh;
+ u64File1.LowPart = lpFile1->stFindInfo.nFileSizeLow;
+ u64File1.HighPart = lpFile1->stFindInfo.nFileSizeHigh;
+ u64File2.LowPart = lpFile2->stFindInfo.nFileSizeLow;
+ u64File2.HighPart = lpFile2->stFindInfo.nFileSizeHigh;
/* In case that differnce is too big for a long */
if (u64File1.QuadPart < u64File2.QuadPart)
@@ -1172,16 +1209,16 @@
break;
case ORDER_DIRECTORY: /* Order by directory attribute /o:g */
- iComp = ((lpFile2->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)-
- (lpFile1->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY));
+ iComp = ((lpFile2->stFindInfo.dwFileAttributes &
FILE_ATTRIBUTE_DIRECTORY)-
+ (lpFile1->stFindInfo.dwFileAttributes &
FILE_ATTRIBUTE_DIRECTORY));
break;
case ORDER_EXTENSION: /* Order by extension name /o:e */
- iComp =
_tcsicmp(getExt(lpFile1->cFileName),getExt(lpFile2->cFileName));
+ iComp =
_tcsicmp(getExt(lpFile1->stFindInfo.cFileName),getExt(lpFile2->stFindInfo.cFileName));
break;
case ORDER_NAME: /* Order by filename /o:n */
- iComp = _tcsicmp(lpFile1->cFileName, lpFile2->cFileName);
+ iComp = _tcsicmp(lpFile1->stFindInfo.cFileName,
lpFile2->stFindInfo.cFileName);
break;
case ORDER_TIME: /* Order by file's time /o:t */
@@ -1190,24 +1227,24 @@
{
case TF_CREATIONDATE:
/* concat the 32bit integers to a 64bit */
- u64File1.LowPart = lpFile1->ftCreationTime.dwLowDateTime;
- u64File1.HighPart = lpFile1->ftCreationTime.dwHighDateTime ;
- u64File2.LowPart = lpFile2->ftCreationTime.dwLowDateTime;
- u64File2.HighPart = lpFile2->ftCreationTime.dwHighDateTime ;
+ u64File1.LowPart = lpFile1->stFindInfo.ftCreationTime.dwLowDateTime;
+ u64File1.HighPart = lpFile1->stFindInfo.ftCreationTime.dwHighDateTime
;
+ u64File2.LowPart = lpFile2->stFindInfo.ftCreationTime.dwLowDateTime;
+ u64File2.HighPart = lpFile2->stFindInfo.ftCreationTime.dwHighDateTime
;
break;
case TF_LASTACCESSEDDATE :
/* concat the 32bit integers to a 64bit */
- u64File1.LowPart = lpFile1->ftLastAccessTime.dwLowDateTime;
- u64File1.HighPart = lpFile1->ftLastAccessTime.dwHighDateTime ;
- u64File2.LowPart = lpFile2->ftLastAccessTime.dwLowDateTime;
- u64File2.HighPart = lpFile2->ftLastAccessTime.dwHighDateTime ;
+ u64File1.LowPart =
lpFile1->stFindInfo.ftLastAccessTime.dwLowDateTime;
+ u64File1.HighPart =
lpFile1->stFindInfo.ftLastAccessTime.dwHighDateTime ;
+ u64File2.LowPart =
lpFile2->stFindInfo.ftLastAccessTime.dwLowDateTime;
+ u64File2.HighPart =
lpFile2->stFindInfo.ftLastAccessTime.dwHighDateTime ;
break;
case TF_MODIFIEDDATE:
/* concat the 32bit integers to a 64bit */
- u64File1.LowPart = lpFile1->ftLastWriteTime.dwLowDateTime;
- u64File1.HighPart = lpFile1->ftLastWriteTime.dwHighDateTime ;
- u64File2.LowPart = lpFile2->ftLastWriteTime.dwLowDateTime;
- u64File2.HighPart = lpFile2->ftLastWriteTime.dwHighDateTime ;
+ u64File1.LowPart = lpFile1->stFindInfo.ftLastWriteTime.dwLowDateTime;
+ u64File1.HighPart = lpFile1->stFindInfo.ftLastWriteTime.dwHighDateTime
;
+ u64File2.LowPart = lpFile2->stFindInfo.ftLastWriteTime.dwLowDateTime;
+ u64File2.HighPart = lpFile2->stFindInfo.ftLastWriteTime.dwHighDateTime
;
break;
}
@@ -1240,12 +1277,12 @@
* Sort files by the order criterias using quicksort method
*/
static VOID
-QsortFiles(LPWIN32_FIND_DATA ptrArray[], /* [IN/OUT] The array with file info pointers
*/
+QsortFiles(PDIRFINDINFO ptrArray[], /* [IN/OUT] The array with file info pointers
*/
int i, /* [IN] The index of first item in array
*/
int j, /* [IN] The index to last item in array
*/
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags that we will use to
sort */
{
- LPWIN32_FIND_DATA lpTemp; /* A temporary pointer */
+ PDIRFINDINFO lpTemp; /* A temporary pointer */
BOOL Way;
if (i < j)
@@ -1289,8 +1326,9 @@
BOOL fPoint; /* If szPath is a file with extension fPoint will
be True*/
HANDLE hSearch; /* The handle of the search */
HANDLE hRecSearch; /* The handle for searching recursivly */
+ HANDLE hStreams; /* The handle for alternate streams */
WIN32_FIND_DATA wfdFileInfo; /* The info of file that found */
- LPWIN32_FIND_DATA * ptrFileArray; /* An array of pointers with all the files */
+ PDIRFINDINFO * ptrFileArray; /* An array of pointers with all the files */
PDIRFINDLISTNODE ptrStartNode; /* The pointer to the first node */
PDIRFINDLISTNODE ptrNextNode; /* A pointer used for relatives refernces */
TCHAR szFullPath[MAX_PATH]; /* The full path that we are listing with
trailing \ */
@@ -1301,6 +1339,9 @@
DWORD dwCountDirs; /* Counter for directories */
ULONGLONG u64CountBytes; /* Counter for bytes */
ULARGE_INTEGER u64Temp; /* A temporary counter */
+ WIN32_FIND_STREAM_DATA wfsdStreamInfo;
+ PDIRFINDSTREAMNODE * ptrCurNode; /* The pointer to the first stream */
+ PDIRFINDSTREAMNODE ptrFreeNode; /* The pointer used during cleanup */
/* Initialize Variables */
ptrStartNode = NULL;
@@ -1363,6 +1404,12 @@
while (ptrStartNode)
{
ptrNextNode = ptrStartNode->ptrNext;
+ while (ptrStartNode->stInfo.ptrHead)
+ {
+ ptrFreeNode = ptrStartNode->stInfo.ptrHead;
+ ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
+ cmd_free(ptrFreeNode);
+ }
cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode;
dwCount--;
@@ -1376,15 +1423,68 @@
if (ptrNextNode->ptrNext)
{
/* Copy the info of search at linked list */
- memcpy(&ptrNextNode->ptrNext->stFindInfo,
+ memcpy(&ptrNextNode->ptrNext->stInfo.stFindInfo,
&wfdFileInfo,
sizeof(WIN32_FIND_DATA));
/* If lower case is selected do it here */
if (lpFlags->bLowerCase)
{
-
_tcslwr(ptrNextNode->ptrNext->stFindInfo.cAlternateFileName);
- _tcslwr(ptrNextNode->ptrNext->stFindInfo.cFileName);
+
_tcslwr(ptrNextNode->ptrNext->stInfo.stFindInfo.cAlternateFileName);
+
_tcslwr(ptrNextNode->ptrNext->stInfo.stFindInfo.cFileName);
+ }
+
+ /* No streams (yet?) */
+ ptrNextNode->ptrNext->stInfo.ptrHead = NULL;
+
+ /* Alternate streams are only displayed with new long list */
+ if (lpFlags->bNewLongList && lpFlags->bDataStreams)
+ {
+ /* Try to get stream information */
+ hStreams = FindFirstStreamW(wfdFileInfo.cFileName,
FindStreamInfoStandard, &wfsdStreamInfo, 0);
+ if (hStreams != INVALID_HANDLE_VALUE)
+ {
+ /* We totally ignore first stream. It contains data about
::$DATA */
+ ptrCurNode =
&ptrNextNode->ptrNext->stInfo.ptrHead;
+ while (FindNextStreamW(hStreams, &wfsdStreamInfo))
+ {
+ *ptrCurNode = cmd_alloc(sizeof(DIRFINDSTREAMNODE));
+ if (*ptrCurNode == NULL)
+ {
+ WARN("DEBUG: Cannot allocate memory for
*ptrCurNode!\n");
+ while (ptrStartNode)
+ {
+ ptrNextNode = ptrStartNode->ptrNext;
+ while (ptrStartNode->stInfo.ptrHead)
+ {
+ ptrFreeNode =
ptrStartNode->stInfo.ptrHead;
+ ptrStartNode->stInfo.ptrHead =
ptrFreeNode->ptrNext;
+ cmd_free(ptrFreeNode);
+ }
+ cmd_free(ptrStartNode);
+ ptrStartNode = ptrNextNode;
+ dwCount--;
+ }
+ FindClose(hStreams);
+ FindClose(hSearch);
+ return 1;
+ }
+
+ memcpy(&(*ptrCurNode)->stStreamInfo,
&wfsdStreamInfo,
+ sizeof(WIN32_FIND_STREAM_DATA));
+
+ /* If lower case is selected do it here */
+ if (lpFlags->bLowerCase)
+ {
+ _tcslwr((*ptrCurNode)->stStreamInfo.cStreamName);
+ }
+
+ ptrCurNode = &(*ptrCurNode)->ptrNext;
+ }
+
+ FindClose(hStreams);
+ *ptrCurNode = NULL;
+ }
}
/* Continue at next node at linked list */
@@ -1415,13 +1515,19 @@
ptrNextNode->ptrNext = NULL;
/* Calculate and allocate space need for making an array of pointers */
- ptrFileArray = cmd_alloc(sizeof(LPWIN32_FIND_DATA) * dwCount);
+ ptrFileArray = cmd_alloc(sizeof(PDIRFINDINFO) * dwCount);
if (ptrFileArray == NULL)
{
WARN("DEBUG: Cannot allocate memory for ptrFileArray!\n");
while (ptrStartNode)
{
ptrNextNode = ptrStartNode->ptrNext;
+ while (ptrStartNode->stInfo.ptrHead)
+ {
+ ptrFreeNode = ptrStartNode->stInfo.ptrHead;
+ ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
+ cmd_free(ptrFreeNode);
+ }
cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode;
dwCount --;
@@ -1437,7 +1543,7 @@
dwCount = 0;
while (ptrNextNode->ptrNext)
{
- *(ptrFileArray + dwCount) = &ptrNextNode->ptrNext->stFindInfo;
+ *(ptrFileArray + dwCount) = &ptrNextNode->ptrNext->stInfo;
ptrNextNode = ptrNextNode->ptrNext;
dwCount++;
}
@@ -1467,6 +1573,12 @@
while (ptrStartNode)
{
ptrNextNode = ptrStartNode->ptrNext;
+ while (ptrStartNode->stInfo.ptrHead)
+ {
+ ptrFreeNode = ptrStartNode->stInfo.ptrHead;
+ ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
+ cmd_free(ptrFreeNode);
+ }
cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode;
dwCount --;
@@ -1543,6 +1655,7 @@
/* Initialize Switch Flags < Default switches are setted here!> */
stFlags.b4Digit = TRUE;
stFlags.bBareFormat = FALSE;
+ stFlags.bDataStreams = FALSE;
stFlags.bLowerCase = FALSE;
stFlags.bNewLongList = TRUE;
stFlags.bPause = FALSE;
@@ -1620,6 +1733,7 @@
TRACE(" Order Criteria [%i]: %i (Reversed: %i)\n",i,
stFlags.stOrderBy.eCriteria[i], stFlags.stOrderBy.bCriteriaRev[i] );
TRACE("(P) Pause : %i\n", stFlags.bPause );
TRACE("(Q) Owner : %i\n", stFlags.bUser );
+ TRACE("(R) Data stream : %i\n", stFlags.bDataStreams );
TRACE("(S) Recursive : %i\n", stFlags.bRecursive );
TRACE("(T) Time field : %i\n", stFlags.stTimeField.eTimeField );
TRACE("(X) Short names : %i\n", stFlags.bShortName );
Modified: trunk/reactos/base/shell/cmd/lang/cs-CZ.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/cs-CZ.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/cs-CZ.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/cs-CZ.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -148,7 +148,7 @@
/m specifiy than n are milliseconds\n\
otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\
Specifies drive, directory, and/or files to list.\n\n\
/A Displays files with specified attributes.\n\
@@ -167,6 +167,7 @@
G Group directories first - Prefix to reverse order\n\
/P Pauses after each screenful of information.\n\
/Q Display the owner of the file.\n\
+ /R Displays alternate data streams of the files.\n\
/S Displays files in specified directory and all subdirectories.\n\
/T Controls which time field displayed or used for sorting\n\
timefield C Creation\n\
Modified: trunk/reactos/base/shell/cmd/lang/de-DE.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/de-DE.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/de-DE.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -142,7 +142,7 @@
/m Millisekunden, ansonsten Sekunden\n"
STRING_DIR_HELP1 "Listet die Dateien und Unterverzeichnisse eines Verzeichnisses
auf.\n\n\
DIR [Laufwerk:][Pfad][Dateiname] [/A[[:]Attribute]] [/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]Reihenfolge]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
+ [/O[[:]Reihenfolge]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[Laufwerk:][path][Dateiname]\n\
Bezeichnet Laufwerk, Verzeichnis und/oder Dateien.\n\n\
/A Listet Dateien mit angegebenen Attributen auf.\n\
@@ -162,6 +162,7 @@
G Verzeichnisse zuerst - vorangestellt kehrt die\n\
/P Pausiert nach jeder vollen Bildschirmseite.\n\
/Q Gibt den Besitzer der Datei aus.\n\
+ /R Displays alternate data streams of the files.\n\
/S Listet Dateien und alle Unterverzeichnisse auf.\n\
/T Bestimmt welche Zeit verwendet wird.\n\
timefield C Erstellung\n\
Modified: trunk/reactos/base/shell/cmd/lang/el-GR.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/el-GR.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/el-GR.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/el-GR.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -147,7 +147,7 @@
/m specifiy than n are milliseconds\n\
otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [δίÏκοÏ:][μονοÏάÏι][αÏÏείο]
[/A[[:]ÏαÏακÏηÏιÏÏικά]] [/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[δίÏκοÏ:][μονοÏάÏι][αÏÏείο]\n\
ÎαθοÏίζει μονάδα δίÏκοÏ
, καÏάλογο ή/και αÏÏεία ÏοÏ
θα ÏαÏαÏεθοÏν Ïε λίÏÏα.\n\n\
/A ÎμÏανίζει αÏÏεία με Ïα καθοÏιÏμÎνα
ÏαÏακÏηÏιÏÏικά..\n\
@@ -166,6 +166,7 @@
G Î ÏÏÏα οι καÏάλογοι ομάδÏν -
Î ÏÏθεμα για ανÏιÏÏÏοÏή ÏÎ·Ï ÏειÏάÏ\n\
/P ΣÏαμαÏάει ÏÏαν οι ÏληÏοÏοÏÎ¯ÎµÏ Î³ÎµÎ¼Î¯ÏοÏ
ν μία οθÏνη.\n\
/Q ÎμÏάνιÏη ÏοÏ
ιδιοκÏήÏη ÏοÏ
αÏÏείοÏ
.\n\
+ /R Displays alternate data streams of the files.\n\
/S ÎμÏανίζει Ïα αÏÏεία ÏÏον καθοÏιÏμÎνο
καÏάλογο και Ïε ÏλοÏ
Ï ÏοÏ
Ï Ï
ÏοκαÏαλÏγοÏ
Ï.\n\
/T ÎλÎγÏει Ïοιο Ïεδίο ÏÏÏνοÏ
θα εμÏανιÏÏεί ή θα ÏÏηÏιμοÏοιηθεί για Ïην
ÏαξινÏμηÏη\n\
Ïεδίο ÏÏÏνοÏ
C ÎημιοÏ
Ïγία\n\
Modified: trunk/reactos/base/shell/cmd/lang/en-US.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/en-US.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/en-US.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/en-US.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -143,7 +143,7 @@
/m specifiy than n are milliseconds\n\
otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\
Specifies drive, directory, and/or files to list.\n\n\
/A Displays files with specified attributes.\n\
@@ -162,6 +162,7 @@
G Group directories first - Prefix to reverse order\n\
/P Pauses after each screenful of information.\n\
/Q Display the owner of the file.\n\
+ /R Displays alternate data streams of the files.\n\
/S Displays files in specified directory and all subdirectories.\n\
/T Controls which time field displayed or used for sorting\n\
timefield C Creation\n\
Modified: trunk/reactos/base/shell/cmd/lang/es-ES.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/es-ES.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/es-ES.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/es-ES.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -145,7 +145,7 @@
/m Especifica que n son milisegundos\n\
En otro caso n son segundos\n"
STRING_DIR_HELP1 "DIR [unidad:][ruta][nombre de archivo] [/A[[:]atributos]] [/B]
[/C] [/D] [/L] [/N]\n\
- [/O[[:]orden]] [/P] [/Q] [/S] [/T[[:]fecha]] [/W] [/X] [/4]\n\n\
+ [/O[[:]orden]] [/P] [/Q] [/R] [/S] [/T[[:]fecha]] [/W] [/X] [/4]\n\n\
[unidad:][ruta][nombre de archivo]\n\
Especifica la unidad, el directorio o los archivos a listar.\n\n\
/A Muestra los archivos con los atributos especificados.\n\
@@ -165,6 +165,7 @@
G Los directorios primero - Prefijo para el orden inverso\n\
/P Pausa después de cada pantalla llena de información.\n\
/Q Muestra el propietario del archivo.\n\
+ /R Displays alternate data streams of the files.\n\
/S Muestra los archivos en el directorio especificado y sus
subdirectorios.\n\
/T Controla que campo de tiempo se muestra o es usado para ordenar:\n\
campo de tiempo C Creación\n\
Modified: trunk/reactos/base/shell/cmd/lang/fr-FR.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/fr-FR.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/fr-FR.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/fr-FR.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -151,7 +151,7 @@
/m spécifie que n est en millisecondes\n\
sinon n est en secondes"
STRING_DIR_HELP1 "DIR [lecteur:][chemin][fichier] [/A[[:]attributs]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]ordredetri]] [/P] [/Q] [/S] [/T[[:]heure]] [/W] [/X] [/4]\n\n\
+ [/O[[:]ordredetri]] [/P] [/Q] [/R] [/S] [/T[[:]heure]] [/W] [/X] [/4]\n\n\
[lecteur:][chemin][fichier]\n\
Spécifie le disque, le répertoire, et/ou les fichiers à lister.\n\n\
/A Affiche les fichiers avec les attributs indiqués.\n\
@@ -173,6 +173,7 @@
G Répertoires d'abord - Préfixe pour inverser l'ordre\n\
/P S'arrête après chaque page d'information.\n\
/Q Affiche le propriétaire du fichier.\n\
+ /R Affiche les flux de données alternatifs du fichier.\n\
/S Affiche les fichiers dans le répertoire indiqué et\n\
tous les sous-répertoires.\n\
/T Contrôle quel champ de temps sera affiché ou utilisé\n\
Modified: trunk/reactos/base/shell/cmd/lang/hu-HU.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/hu-HU.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/hu-HU.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/hu-HU.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -136,7 +136,7 @@
/m specifiy than n are milliseconds\n\
otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [meghajtó:][elérési_út][állománynév]
[/A[[:]attribútumok]] [/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]rendezési_feltétel]] [/P] [/Q] [/S] [/T[[:]idõ]] [/W] [/X] [/4]\n\n\
+ [/O[[:]rendezési_feltétel]] [/P] [/Q] [/R] [/S] [/T[[:]idõ]] [/W] [/X] [/4]\n\n\
[meghajtó:][elérési_út][állományname]\n\
Az adott hely állományait és mappáit jelenÃti meg.\n\n\
/A A megadott attribútumu állományokat jelenÃti csak meg.\n\
@@ -154,6 +154,7 @@
G Mappák legelõl - ""Nem""
prefixel fordÃtott rendezés\n\
/P Csak egy képernyõnyi adat megjelenÃtése egyszerre.\n\
/Q Ãllomány tulajdonsosának megjelenÃtése.\n\
+ /R Displays alternate data streams of the files.\n\
/S Almappák tartalmát is megjelenÃti.\n\
/T Controls which time field displayed or used for sorting\n\
timefield C Létrehozás\n\
Modified: trunk/reactos/base/shell/cmd/lang/id-ID.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/id-ID.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/id-ID.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/id-ID.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -145,7 +145,7 @@
/m menetapkan bahwa n adalah milidetik\n\
sebaliknya n adalah detik\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\
Menetapkan drive, direktori, dan/atau files ke daftar.\n\n\
/A Menampilkan file dengan atribut yang ditetapkan.\n\
@@ -164,6 +164,7 @@
G Grup direktori pertama - Prefiks untuk membalik urutan\n\
/P Menunda setelah setiap layar penuh informasi.\n\
/Q Menampilkan pemilik file.\n\
+ /R Displays alternate data streams of the files.\n\
/S Menampilkan file dalam direktori dan semua subdirektorinya.\n\
/T Mengontrol field waktu mana atau dipakai untuk mengurut\n\
timefield C Pembuatan\n\
Modified: trunk/reactos/base/shell/cmd/lang/it-IT.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/it-IT.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/it-IT.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/it-IT.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -143,7 +143,7 @@
/m precisa che n è in millisecondi\n\
altrimenti n è in secondi\n"
STRING_DIR_HELP1 "DIR [disco:][percorso][nomefilen] [/A[[:]attributi]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]orderinamento]] [/P] [/Q] [/S] [/T[[:]tempo]] [/W] [/X] [/4]\n\n\
+ [/O[[:]orderinamento]] [/P] [/Q] [/R] [/S] [/T[[:]tempo]] [/W] [/X] [/4]\n\n\
[disco:][percorso][nomefilen]\n\
Indica disco, percorso e/o file da elencare.\n\n\
/A Visualizza i file con gli attributi indicati.\n\
@@ -162,6 +162,7 @@
G Le cartelle per prime - Prefisso per invertire l'ordine\n\
/P Pasa dopo ogni schermata piena.\n\
/Q Visualizza il proprietario del file.\n\
+ /R Displays alternate data streams of the files.\n\
/S Visualizza i file nella cartella indicata e nelle sottocartelle.\n\
/T Sceglie quale campo di tempo è usato per gli ordinamenti.\n\
timefield C Creazione\n\
Modified: trunk/reactos/base/shell/cmd/lang/ja-JP.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/ja-JP.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/ja-JP.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/ja-JP.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -148,7 +148,7 @@
æå®ããªãå ´åãåä½ã«ã¯ç§ã使ããã¾ãã\n"
STRING_DIR_HELP1
"ãã£ã¬ã¯ããªä¸ã®ãã¡ã¤ã«ã¨ãµããã£ã¬ã¯ããªãä¸è¦§è¡¨ç¤ºãã¾ãã\n\n\
DIR [ãã©ã¤ã:][ãã¹][ãã¡ã¤ã«å] [/A[[:]å±æ§]] [/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]ã½ã¼ãé ]] [/P] [/Q] [/S] [/T[[:]ã¿ã¤ã ãã£ã¼ã«ã]] [/W] [/X]
[/4]\n\n\
+ [/O[[:]ã½ã¼ãé ]] [/P] [/Q] [/R] [/S] [/T[[:]ã¿ã¤ã ãã£ã¼ã«ã]] [/W] [/X]
[/4]\n\n\
[ãã©ã¤ã:][ãã¹][ãã¡ã¤ã«å]\n\
ä¸è¦§è¡¨ç¤ºãããã©ã¤ãããã£ã¬ã¯ããªãã¾ãã¯ãã¡ã¤ã«ãæå®ãã¾ãã\n\
/A æå®ãããå±æ§ã®ãã¡ã¤ã«ã表示ãã¾ãã\n\
@@ -167,6 +167,7 @@
G ã°ã«ã¼ã (ãã£ã¬ã¯ããªãã) - éé \n\
/P 1 ç»é¢ãã¨ã«åæ¢ãã¦è¡¨ç¤ºãã¾ãã\n\
/Q ãã¡ã¤ã«ã®ææè
ã表示ãã¾ãã\n\
+ /R Displays alternate data streams of the files.\n\
/S
æå®ããããã£ã¬ã¯ããªããã³ãã®ãµããã£ã¬ã¯ããªã®ãã¹ã¦ã®\n\
ãã¡ã¤ã«ã表示ãã¾ãã\n\
/T
ã©ã®ã¿ã¤ã ãã£ã¼ã«ãã表示ããããã¾ãã¯ä¸¦ã¹æ¿ãã«ä½¿ç¨ãããã\n\
Modified: trunk/reactos/base/shell/cmd/lang/no-NO.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/no-NO.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/no-NO.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/no-NO.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -143,7 +143,7 @@
/m spesifiserer at n er mikrosekunder\n\
ellers er n sekunder\n"
STRING_DIR_HELP1 "DIR [stasjon:][mappe][filnavn] [/A[[:]attributter]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]sortering]] [/P] [/Q] [/S] [/T[[:]tidsfelt]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortering]] [/P] [/Q] [/R] [/S] [/T[[:]tidsfelt]] [/W] [/X] [/4]\n\n\
[stasjon:][mappe][filnavn]\n\
Spesifisere stasjon, mappe, og/eller filer som skal listes.\n\n\
/A Vis filer ved å spesifisere attributter.\n\
@@ -162,6 +162,7 @@
G Gruppere mapper først - Prefiks for å reversere orden\n\
/P Pause etter hvert hele skjermbilde.\n\
/Q Viser hvem som eier filen.\n\
+ /R Displays alternate data streams of the files.\n\
/S Viser alle filer i angitt mappe og alle undermapper.\n\
/T Styrer hvilket tidsfelt som vises eller blir brukt for sortering\n\
timefelt C Opprettet \n\
Modified: trunk/reactos/base/shell/cmd/lang/pl-PL.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/pl-PL.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/pl-PL.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/pl-PL.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -151,7 +151,7 @@
/m wymusza traktowanie n jako milisekund,\n\
w innym wypadku bÄdzie traktowane jako sekundy\n"
STRING_DIR_HELP1 "DIR [napÄd:][Åcieżka][pliki] [/A[[:]atrybuty]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]porzÄ
dek]] [/P] [/Q] [/S] [/T[[:]czas]] [/W] [/X] [/4]\n\n\
+ [/O[[:]porzÄ
dek]] [/P] [/Q] [/R] [/S] [/T[[:]czas]] [/W] [/X] [/4]\n\n\
[napÄd:][Åcieżka][nazwa_pliku]\n\
Wyznacza literÄ napÄdu, katalog, i/lub pliki do wyÅwietlenia.\n\n\
/A WyÅwietla pliki o okreÅlonych atrybutach.\n\
@@ -170,6 +170,7 @@
G WyÅwietla najpierw katalogi - Odwraca kolejnoÅÄ\n\
/P Pauza po każdym peÅnym ekranie.\n\
/Q WyÅwietla wÅaÅciciela plików\n\
+ /R Displays alternate data streams of the files.\n\
/S WyÅwietla pliki w danym katalogu i wszystkich podkatalogach.\n\
/T Pole czasu, odpowiedzialne za wyÅwietlanie/sortowanie \n\
czas C Utworzenia\n\
Modified: trunk/reactos/base/shell/cmd/lang/ro-RO.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/ro-RO.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/ro-RO.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/ro-RO.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -160,7 +160,7 @@
/m SpecificÄ faptul cÄ Â«n» sunt milisecunde\n\
altfel «n» sunt considerate secunde.\n"
STRING_DIR_HELP1 "DIR [unitate:][cale][fiÈier] [/A[[:]atribute]] [/B] [/C] [/D]
[/L] [/N]\n\
- [/O[[:]ordonare]] [/P] [/Q] [/S] [/T[[:]timp]] [/W] [/X] [/4]\n\n\
+ [/O[[:]ordonare]] [/P] [/Q] [/R] [/S] [/T[[:]timp]] [/W] [/X] [/4]\n\n\
[unitate:][cale][fiÈier]\n\
SpecificÄ unitatea, directorul Èi/sau fiÈierele de enumerat.\n\n\
/A AfiÈeazÄ fiÈierele dupÄ atributele specificate.\n\
@@ -182,6 +182,7 @@
- Prefix pentru inversarea ordinii\n\
/P PauzÄ dupÄ un ecran de informaÈii.\n\
/Q AfiÈeazÄ posesorul fiÈierului.\n\
+ /R Displays alternate data streams of the files.\n\
/S AfiÈeazÄ fiÈierele din directorul specificat Èi\n\
din toate subdirectoarele sale.\n\
/T DeterminÄ care timp este afiÈat sau folosit la ordonare\n\
Modified: trunk/reactos/base/shell/cmd/lang/ru-RU.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/ru-RU.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/ru-RU.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/ru-RU.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -146,7 +146,7 @@
/m ÑказÑваеÑ, ÑÑо n ознаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво
миллиÑекÑнд\n\
инаÑе n ознаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑекÑнд\n"
STRING_DIR_HELP1 "DIR [диÑк:][пÑÑÑ][имÑ_Ñайла]
[/A[[:]аÑÑибÑÑÑ]] [/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]ÑоÑÑиÑовка]] [/P] [/Q] [/S] [/T[[:]вÑемÑ]] [/W] [/X] [/4]\n\n\
+ [/O[[:]ÑоÑÑиÑовка]] [/P] [/Q] [/R] [/S] [/T[[:]вÑемÑ]] [/W] [/X]
[/4]\n\n\
[диÑк:][пÑÑÑ][имÑ_Ñайла]\n\
ÐиÑк, каÑалог и/или ÑайлÑ, коÑоÑÑе
ÑледÑÐµÑ Ð²ÐºÐ»ÑÑиÑÑ Ð² ÑпиÑок.\n\n\
/A ÐÑвод Ñайлов Ñ ÑказаннÑми аÑÑибÑÑами.\n\
@@ -165,6 +165,7 @@
G ÐаÑаÑÑ ÑпиÑок Ñ ÐºÐ°Ñалогов ÐÑеÑикÑ
""-"" обÑаÑÐ°ÐµÑ Ð¿Ð¾ÑÑдок\n\
/P ÐаÑза поÑле Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑкÑана.\n\
/Q ÐÑвод Ñведений о владелÑÑе Ñайла.\n\
+ /R Displays alternate data streams of the files.\n\
/S ÐÑвод ÑпиÑка Ñайлов из Ñказанного
каÑалога и его подкаÑалогов.\n\
/T ÐÑÐ±Ð¾Ñ Ð¿Ð¾Ð»Ñ Ð²Ñемени Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸
ÑоÑÑиÑовки\n\
вÑÐµÐ¼Ñ C Создание\n\
Modified: trunk/reactos/base/shell/cmd/lang/sk-SK.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/sk-SK.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/sk-SK.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/sk-SK.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -149,7 +149,7 @@
/m specifiy than n are milliseconds\n\
otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\
Specifies drive, directory, and/or files to list.\n\n\
/A Displays files with specified attributes.\n\
@@ -168,6 +168,7 @@
G Group directories first - Prefix to reverse order\n\
/P Pauses after each screenful of information.\n\
/Q Display the owner of the file.\n\
+ /R Displays alternate data streams of the files.\n\
/S Displays files in specified directory and all subdirectories.\n\
/T Controls which time field displayed or used for sorting\n\
timefield C Creation\n\
Modified: trunk/reactos/base/shell/cmd/lang/sq-AL.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/sq-AL.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/sq-AL.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/sq-AL.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -147,7 +147,7 @@
/m specifikoni se n janë millisekonda\n\
ndryshe n janë sekonda\n"
STRING_DIR_HELP1 "DIR [drive:][rrugë][emer] [/A[[:]attributes]] [/B] [/C] [/D]
[/L] [/N]\n\
- [/O[[:]radhitje]] [/P] [/Q] [/S] [/T[[:]koha]] [/W] [/X] [/4]\n\n\
+ [/O[[:]radhitje]] [/P] [/Q] [/R] [/S] [/T[[:]koha]] [/W] [/X] [/4]\n\n\
[drive:][rrugë][emer]\n\
Përcakton, Drejtorin, dhe / ose dokumentin në listë.\n\n\
/A Shfaq dokumentat me atributet e specifikuara.\n\
@@ -166,6 +166,7 @@
G Grupi skedave se pari - Parashtese të kthejë renditjen\n\
/P Pauzo pas çdo informacioni në ekran.\n\
/Q Shfaq zotëruesin e dosjes.\n\
+ /R Displays alternate data streams of the files.\n\
/S Shfaq dokumentet në skedën e specifikuar dhe të gjitha nën-skedat.\n\
/T Kontrollon secilen fushë kohohore e shfaqura ose e përdorur për
klasifikimin\n\
timefield C Krijim\n\
Modified: trunk/reactos/base/shell/cmd/lang/sv-SE.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/sv-SE.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/sv-SE.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/sv-SE.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -143,7 +143,7 @@
/m anger at n är mikrosekunder\n\
annars är n sekunder\n"
STRING_DIR_HELP1 "DIR [enhet:][mapp][filnamn] [/A[[:]attribut]] [/B] [/C] [/D]
[/L] [/N]\n\
- [/O[[:]sortering]] [/P] [/Q] [/S] [/T[[:]tidsfält]] [/W] [/X] [/4]\n\n\
+ [/O[[:]sortering]] [/P] [/Q] [/R] [/S] [/T[[:]tidsfält]] [/W] [/X] [/4]\n\n\
[enhet:][mapp][filnamn]\n\
Anger enhet, mapp, och/eller filer som skall listes.\n\n\
/A Vis filer ved att ange attributter.\n\
@@ -162,6 +162,7 @@
G Gruppera mappar först - Prefix för omvänd ordning\n\
/P Pausa efter varje hel skärmbild.\n\
/Q Viser vem som äger filen.\n\
+ /R Displays alternate data streams of the files.\n\
/S Viser alla filer i angiven mapp och alla undermappar.\n\
/T Kontrollerar vilket tidsfält som visas eller blir använt för
sortering\n\
timefelt C Skapelse \n\
Modified: trunk/reactos/base/shell/cmd/lang/tr-TR.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/tr-TR.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/tr-TR.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/tr-TR.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -146,7 +146,7 @@
/m n milisâniye olarak belirtir\n\
yoksa n sâniyedir\n"
STRING_DIR_HELP1 "DIR [sürücü:][yol][kütük adı] [/A[[:]öz nitelikler]]
[/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]dizme düzeni]] [/P] [/Q] [/S] [/T[[:]zaman aralıÄı]] [/W] [/X] [/4]\n\n\
+ [/O[[:]dizme düzeni]] [/P] [/Q] [/R] [/S] [/T[[:]zaman aralıÄı]] [/W] [/X]
[/4]\n\n\
[sürücü:][yol][kütük adı]\n\
Dizelgelenecek sürücü, dizin veyâ kütükleri belirtir.\n\n\
/A Belirtilen öz nitelikli kütükleri görüntüler.\n\
@@ -166,6 +166,7 @@
G Ãnce dizinleri öbekle - Ters dizme için ön ek\n\
/P Bir bilgi görüntülüÄünden sonra duraklatır.\n\
/Q KütüÄün iyesini göster.\n\
+ /R Displays alternate data streams of the files.\n\
/S Belirtilen dizindeki ve tüm alt dizinlerdeki kütükleri\n\
görüntüler.\n\
/T Dizme için hangi zaman aralıÄının görüntüleneceÄini ya da\n\
Modified: trunk/reactos/base/shell/cmd/lang/uk-UA.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/uk-UA.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/uk-UA.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/uk-UA.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -154,7 +154,7 @@
/m вказÑÑ, Ñо n Ñе мiлiÑекÑнди\n\
iнакÑе n Ñе кiлÑкiÑÑÑ ÑекÑнд\n"
STRING_DIR_HELP1 "DIR [диÑк:][ÑлÑÑ
][iм'Ñ_ÑайлÑ] [/A[[:]аÑÑибÑÑи]] [/B] [/C] [/D] [/L] [/N]\n\
- [/O[[:]поÑÑдок]] [/P] [/Q] [/S] [/T[[:]ÑаÑ]] [/W] [/X] [/4]\n\n\
+ [/O[[:]поÑÑдок]] [/P] [/Q] [/R] [/S] [/T[[:]ÑаÑ]] [/W] [/X] [/4]\n\n\
[диÑк:][ÑлÑÑ
][iм'Ñ_ÑайлÑ]\n\
ÐизнаÑÐ°Ñ Ð´Ð¸Ñк, диÑекÑоÑÑÑ, Ñа/Ñи Ñайли
Ð´Ð»Ñ ÑÑ
Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð² ÑпиÑкÑ.\n\n\
/A ÐiдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ñайлiв з вказаними
аÑÑибÑÑами.\n\
@@ -173,6 +173,7 @@
G ÐоÑаÑи ÑпиÑок з каÑалогiв ÐÑеÑiкÑ
""-"" Ð´Ð»Ñ Ð·Ð²Ð¾ÑоÑнÑого поÑÑдкÑ\n\
/P ÐаÑза пiÑÐ»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ ÐµÐºÑанÑ.\n\
/Q ÐiдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ
пÑо влаÑника ÑайлÑ.\n\
+ /R Displays alternate data streams of the files.\n\
/S ÐiдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ñайлiв з вказаного каÑалогÑ
Ñа вÑiÑ
пiдкаÑалогiв.\n\
/T ÐибiÑ Ð¿Ð¾Ð»Ñ ÑаÑÑ Ð´Ð»Ñ Ð²iдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ñи
ÑоÑÑÑваннÑ\n\
ÑÐ°Ñ C СÑвоÑеннÑ\n\
Modified: trunk/reactos/base/shell/cmd/lang/zh-CN.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/zh-CN.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/zh-CN.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/zh-CN.rc [iso-8859-1] Tue Aug 25 20:35:51 2015
@@ -138,7 +138,7 @@
DELAY [/m]n\n\n\
/m æå® n çåä½ä½¿ç¨æ¯«ç§ï¼å¦å为ç§ã\n"
STRING_DIR_HELP1 "DIR [驱å¨å¨:][è·¯å¾][æ件å] [/A[[:]å±æ§]] [/B] [/C]
[/D] [/L] [/N]\n\
- [/O[[:]æåºé¡ºåº]] [/P] [/Q] [/S] [/T[[:]æ¶é´å段]] [/W] [/X] [/4]\n\n\
+ [/O[[:]æåºé¡ºåº]] [/P] [/Q] [/R] [/S] [/T[[:]æ¶é´å段]] [/W] [/X] [/4]\n\n\
[驱å¨å¨:][è·¯å¾][æ件å]\n\
æå®è¦å表æ¾ç¤ºç驱å¨å¨ãç®å½å/ææ件ã\n\n\
/A æ¾ç¤ºå
·ææå®å±æ§çæ件ã\n\
@@ -156,6 +156,7 @@
G åç»ç®å½å¨å - å转顺åºçåç¼\n\
/P å¨æ¯å±å¹ä¿¡æ¯è¾åºååé¡¿ã\n\
/Q æ¾ç¤ºæ件çææè
ã\n\
+ /R Displays alternate data streams of the files.\n\
/S æ¾ç¤ºæå®ç®å½åææåç®å½ä¸çæ件ã\n\
/T æ§å¶è¦æ¾ç¤ºæè
ç¨äºæåºçæ¶é´å段ã\n\
æ¶é´å段 C å建æ¶é´\n\