Fixed cp so it works as God intended it to.
-Erik
This commit is contained in:
@@ -35,13 +35,25 @@ static const char mv_usage[] = "mv SOURCE DEST\n"
|
||||
|
||||
static const char *srcName;
|
||||
static const char *destName;
|
||||
static const char *skipName;
|
||||
static int dirFlag = FALSE;
|
||||
|
||||
static int fileAction(const char *fileName, struct stat* statbuf)
|
||||
{
|
||||
char newdestName[NAME_MAX];
|
||||
|
||||
fprintf(stderr, "srcName='%s' destName='%s'\n", srcName, destName);
|
||||
strcpy(newdestName, destName);
|
||||
strcat(newdestName, "/");
|
||||
strcat(newdestName, strstr(fileName, fileName));
|
||||
fprintf(stderr, "newdestName='%s'\n", newdestName);
|
||||
return (copyFile(fileName, newdestName, TRUE, TRUE));
|
||||
}
|
||||
|
||||
|
||||
extern int mv_main(int argc, char **argv)
|
||||
{
|
||||
char newdestName[NAME_MAX];
|
||||
char *skipName;
|
||||
|
||||
if (argc < 3) {
|
||||
usage (mv_usage);
|
||||
@@ -69,16 +81,26 @@ extern int mv_main(int argc, char **argv)
|
||||
strcat(newdestName, strstr(srcName, skipName));
|
||||
else
|
||||
strcat(newdestName, srcName);
|
||||
fprintf(stderr, "srcName='%s'\n", srcName);
|
||||
fprintf(stderr, "skipName='%s'\n", skipName);
|
||||
fprintf(stderr, "newdestName='%s'\n", newdestName);
|
||||
}
|
||||
if (copyFile(srcName, newdestName, FALSE, FALSE) == FALSE) {
|
||||
exit( FALSE);
|
||||
}
|
||||
if (unlink (srcName) < 0) {
|
||||
perror (srcName);
|
||||
exit( FALSE);
|
||||
if (isDirectory(srcName)==TRUE && newdestName[strlen(newdestName)] != '/') {
|
||||
strcat(newdestName, "/");
|
||||
createPath(newdestName, 0777);
|
||||
fprintf(stderr, "srcName = '%s'\n", srcName);
|
||||
fprintf(stderr, "newdestName = '%s'\n", newdestName);
|
||||
if (recursiveAction(srcName, TRUE, TRUE, FALSE,
|
||||
fileAction, fileAction) == FALSE)
|
||||
{
|
||||
exit( FALSE);
|
||||
}
|
||||
exit( TRUE);
|
||||
} else {
|
||||
if (copyFile(srcName, newdestName, FALSE, FALSE) == FALSE) {
|
||||
exit( FALSE);
|
||||
}
|
||||
if (unlink (srcName) < 0) {
|
||||
perror (srcName);
|
||||
exit( FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
exit( TRUE);
|
||||
|
Reference in New Issue
Block a user