diff options
Diffstat (limited to 'cp.c')
-rw-r--r-- | cp.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -48,7 +48,7 @@ static int fileAction(const char *fileName, struct stat* statbuf) | |||
48 | { | 48 | { |
49 | char newdestName[NAME_MAX]; | 49 | char newdestName[NAME_MAX]; |
50 | strcpy(newdestName, destName); | 50 | strcpy(newdestName, destName); |
51 | if (dirFlag==TRUE && newdestName[strlen(newdestName)-1]!= '/' ) { | 51 | if (dirFlag==TRUE) { |
52 | strcat(newdestName, "/"); | 52 | strcat(newdestName, "/"); |
53 | if ( skipName != NULL) | 53 | if ( skipName != NULL) |
54 | strcat(newdestName, strstr(fileName, skipName)); | 54 | strcat(newdestName, strstr(fileName, skipName)); |
@@ -104,10 +104,12 @@ extern int cp_main(int argc, char **argv) | |||
104 | while (argc-- > 1) { | 104 | while (argc-- > 1) { |
105 | srcName = *(argv++); | 105 | srcName = *(argv++); |
106 | skipName = strrchr(srcName, '/'); | 106 | skipName = strrchr(srcName, '/'); |
107 | if (skipName) skipName++; | 107 | if (skipName) |
108 | if (recursiveAction(srcName, recursiveFlag, followLinks, | 108 | skipName++; |
109 | fileAction, fileAction) == FALSE) | 109 | if (recursiveAction(srcName, recursiveFlag, followLinks, FALSE, |
110 | fileAction, fileAction) == FALSE) { | ||
110 | exit( FALSE); | 111 | exit( FALSE); |
112 | } | ||
111 | } | 113 | } |
112 | exit( TRUE); | 114 | exit( TRUE); |
113 | } | 115 | } |