diff options
Diffstat (limited to 'package/sash/src/cp.c')
-rw-r--r-- | package/sash/src/cp.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/package/sash/src/cp.c b/package/sash/src/cp.c new file mode 100644 index 000000000..11d03f74c --- /dev/null +++ b/package/sash/src/cp.c @@ -0,0 +1,27 @@ + +void +do_cp(argc, argv) + char **argv; +{ + BOOL dirflag; + char *srcname; + char *destname; + char *lastarg; + + lastarg = argv[argc - 1]; + + dirflag = isadir(lastarg); + + if ((argc > 3) && !dirflag) { + fprintf(stderr, "%s: not a directory\n", lastarg); + return; + } + + while (argc-- > 2) { + destname = lastarg; + if (dirflag) + destname = buildname(destname, srcname); + + (void) copyfile(*++argv, destname, FALSE); + } +} |