Fixed archive output bug
This commit is contained in:
+15
-6
@@ -106,6 +106,7 @@ void StuffyAction(char* argv[], int archiveAction)
|
||||
ListArchive(argv[2]);
|
||||
if (archiveAction == 3)
|
||||
ExtractArchive(argv);
|
||||
return;
|
||||
}
|
||||
|
||||
// Checks if filename is found in a header of archive
|
||||
@@ -138,8 +139,17 @@ int IsFileArchived(char* archiveName, char* filename)
|
||||
// file already inside the archive
|
||||
void AddToArchive(char* archiveName, char* filename)
|
||||
{
|
||||
SafetyCheck(IsFileArchived(archiveName, filename),
|
||||
"File already exists in archive, try removing file first.");
|
||||
char* filenameCleaned = StripFilename(filename);
|
||||
if (IsFileArchived(archiveName, filenameCleaned))
|
||||
{
|
||||
printf("File already exists in archive, try removing file first.");
|
||||
return;
|
||||
}
|
||||
if (access(filename, F_OK))
|
||||
{
|
||||
printf("%s not found.", filename);
|
||||
return;
|
||||
}
|
||||
int archiveFile = open(archiveName, O_RDWR | O_CREAT, 0644);
|
||||
SafetyCheck((archiveFile < 0), "Archive failed to open.");
|
||||
ssize_t readSize;
|
||||
@@ -147,7 +157,6 @@ void AddToArchive(char* archiveName, char* filename)
|
||||
do
|
||||
readSize = ReadSingleModule(archiveFile, &(module));
|
||||
while (readSize > 0);
|
||||
char* filenameCleaned = StripFilename(filename);
|
||||
strcpy(module.moduleHeader.moduleName, filenameCleaned);
|
||||
stat(filename, &(module.moduleHeader.moduleInfo));
|
||||
WriteSingleModule(archiveFile, &module, filename);
|
||||
@@ -195,13 +204,13 @@ void ListArchive(char* archiveName)
|
||||
ssize_t readSize;
|
||||
SafetyCheck((archiveFile < 0), "Archive failed to open.");
|
||||
ModuleStruct module;
|
||||
do
|
||||
readSize = ReadSingleModule(archiveFile, &module);
|
||||
while (readSize > 0)
|
||||
{
|
||||
readSize = ReadSingleModule(archiveFile, &module);
|
||||
printf("Name: %s | Size: %ld\n", module.moduleHeader.moduleName,
|
||||
module.moduleHeader.moduleInfo.st_size);
|
||||
readSize = ReadSingleModule(archiveFile, &module);
|
||||
}
|
||||
while (readSize > 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user