mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[FATTEN]
- Fix VC2010 build svn path=/trunk/; revision=69111
This commit is contained in:
@@ -29,6 +29,7 @@ DWORD get_fattime()
|
||||
time(&rawtime);
|
||||
timeinfo = localtime(&rawtime);
|
||||
|
||||
{
|
||||
union FatTime {
|
||||
struct {
|
||||
DWORD Second : 5; // div 2
|
||||
@@ -51,6 +52,7 @@ DWORD get_fattime()
|
||||
};
|
||||
|
||||
return myTime.whole;
|
||||
}
|
||||
}
|
||||
|
||||
int is_command(const char* parg)
|
||||
@@ -66,10 +68,12 @@ int is_command(const char* parg)
|
||||
|
||||
int need_mount()
|
||||
{
|
||||
int r;
|
||||
|
||||
if (isMounted)
|
||||
return FR_OK;
|
||||
|
||||
int r = f_mount(&g_Filesystem, "0:", 0);
|
||||
r = f_mount(&g_Filesystem, "0:", 0);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
@@ -116,6 +120,8 @@ int main(int oargc, char* oargv[])
|
||||
while (argc > 0)
|
||||
{
|
||||
char *parg = *argv;
|
||||
int nargs = 0;
|
||||
int i = 0;
|
||||
|
||||
if (!is_command(parg))
|
||||
{
|
||||
@@ -128,21 +134,20 @@ int main(int oargc, char* oargv[])
|
||||
argc--;
|
||||
|
||||
// find next command, to calculare number of args
|
||||
int nargs = 0;
|
||||
int i = 0;
|
||||
while ((argv[i] != NULL) && !is_command(argv[i++]))
|
||||
nargs++;
|
||||
|
||||
if (strcmp(parg, "format") == 0)
|
||||
{
|
||||
// NOTE: The fs driver detects which FAT format fits best based on size
|
||||
int sectors;
|
||||
|
||||
NEED_PARAMS(1, 1);
|
||||
|
||||
NEED_MOUNT();
|
||||
|
||||
// Arg 1: number of sectors
|
||||
int sectors = atoi(argv[0]);
|
||||
sectors = atoi(argv[0]);
|
||||
|
||||
if (sectors <= 0)
|
||||
{
|
||||
@@ -168,6 +173,12 @@ int main(int oargc, char* oargv[])
|
||||
}
|
||||
else if (strcmp(parg, "add") == 0)
|
||||
{
|
||||
FILE* fe;
|
||||
FIL fv = { 0 };
|
||||
char buff[32768];
|
||||
UINT rdlen = 0;
|
||||
UINT wrlen = 0;
|
||||
|
||||
NEED_PARAMS(2, 2);
|
||||
|
||||
NEED_MOUNT();
|
||||
@@ -175,9 +186,6 @@ int main(int oargc, char* oargv[])
|
||||
// Arg 1: external file to add
|
||||
// Arg 2: virtual filename
|
||||
|
||||
FILE* fe;
|
||||
FIL fv = { 0 };
|
||||
|
||||
fe = fopen(argv[0], "rb");
|
||||
|
||||
if (!fe)
|
||||
@@ -192,10 +200,6 @@ int main(int oargc, char* oargv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
char buff[32768];
|
||||
UINT rdlen = 0;
|
||||
UINT wrlen = 0;
|
||||
|
||||
while ((rdlen = fread(buff, 1, 32768, fe)) > 0)
|
||||
{
|
||||
f_write(&fv, buff, rdlen, &wrlen);
|
||||
@@ -206,6 +210,12 @@ int main(int oargc, char* oargv[])
|
||||
}
|
||||
else if (strcmp(parg, "extract") == 0)
|
||||
{
|
||||
FIL fe = { 0 };
|
||||
FILE* fv;
|
||||
char buff[32768];
|
||||
UINT rdlen = 0;
|
||||
UINT wrlen = 0;
|
||||
|
||||
NEED_PARAMS(2, 2);
|
||||
|
||||
NEED_MOUNT();
|
||||
@@ -213,9 +223,6 @@ int main(int oargc, char* oargv[])
|
||||
// Arg 1: virtual file to extract
|
||||
// Arg 2: external filename
|
||||
|
||||
FIL fe = { 0 };
|
||||
FILE* fv;
|
||||
|
||||
if (f_open(&fe, argv[0], FA_READ))
|
||||
{
|
||||
printf("Error: unable to open file '%s' for reading.", argv[0]);
|
||||
@@ -230,10 +237,6 @@ int main(int oargc, char* oargv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
char buff[32768];
|
||||
UINT rdlen = 0;
|
||||
UINT wrlen = 0;
|
||||
|
||||
while ((f_read(&fe, buff, 32768, &rdlen) == 0) && (rdlen > 0))
|
||||
{
|
||||
fwrite(buff, 1, rdlen, fv);
|
||||
@@ -255,15 +258,18 @@ int main(int oargc, char* oargv[])
|
||||
}
|
||||
else if (strcmp(parg, "copy") == 0)
|
||||
{
|
||||
FIL fe = { 0 };
|
||||
FIL fv = { 0 };
|
||||
char buff[32768];
|
||||
UINT rdlen = 0;
|
||||
UINT wrlen = 0;
|
||||
|
||||
NEED_PARAMS(2, 2);
|
||||
|
||||
NEED_MOUNT();
|
||||
// Arg 1: src path & filename
|
||||
// Arg 2: new path & filename
|
||||
|
||||
FIL fe = { 0 };
|
||||
FIL fv = { 0 };
|
||||
|
||||
if (f_open(&fe, argv[0], FA_READ))
|
||||
{
|
||||
printf("Error: unable to open file '%s' for reading.", argv[0]);
|
||||
@@ -275,10 +281,6 @@ int main(int oargc, char* oargv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
char buff[32768];
|
||||
UINT rdlen = 0;
|
||||
UINT wrlen = 0;
|
||||
|
||||
while ((f_read(&fe, buff, 32768, &rdlen) == 0) && (rdlen > 0))
|
||||
{
|
||||
f_write(&fv, buff, rdlen, &wrlen);
|
||||
@@ -307,18 +309,20 @@ int main(int oargc, char* oargv[])
|
||||
}
|
||||
else if (strcmp(parg, "list") == 0)
|
||||
{
|
||||
char* root = "/";
|
||||
DIR dir = { 0 };
|
||||
FILINFO info = { 0 };
|
||||
char lfname[257];
|
||||
|
||||
NEED_PARAMS(0, 1);
|
||||
|
||||
// Arg 1: folder path (optional)
|
||||
char* root = "/";
|
||||
|
||||
if (nargs == 1)
|
||||
{
|
||||
root = argv[0];
|
||||
}
|
||||
|
||||
DIR dir = { 0 };
|
||||
|
||||
if (f_opendir(&dir, root))
|
||||
{
|
||||
printf("Error opening directory '%s'.\n", root);
|
||||
@@ -327,8 +331,6 @@ int main(int oargc, char* oargv[])
|
||||
|
||||
printf("Listing directory contents of: %s\n", root);
|
||||
|
||||
FILINFO info = { 0 };
|
||||
char lfname[257];
|
||||
info.lfname = lfname;
|
||||
info.lfsize = 256;
|
||||
while ((!f_readdir(&dir, &info)) && (strlen(info.fname) > 0))
|
||||
|
||||
Reference in New Issue
Block a user