diff --git a/cp.c b/cp.c index db3cfc0..7bafc7a 100644 --- a/cp.c +++ b/cp.c @@ -1,7 +1,6 @@ /* See LICENSE file for copyright and license details. */ #include #include -#include #include #include "fs.h" #include "util.h" @@ -10,18 +9,17 @@ int main(int argc, char *argv[]) { struct stat st; - char c; - while((c = getopt(argc, argv, "r")) != -1) - switch(c) { - case 'r': - cp_rflag = true; - break; - default: - exit(EXIT_FAILURE); - } - if(argc > 3 && !cp_rflag && !(stat(argv[argc-1], &st) == 0 && S_ISDIR(st.st_mode))) + ARGBEGIN { + case 'r': + cp_rflag = true; + break; + default: + exit(EXIT_FAILURE); + } ARGEND; + + if(argc > 2 && !(stat(argv[argc-1], &st) == 0 && S_ISDIR(st.st_mode))) eprintf("%s: not a directory\n", argv[argc-1]); - enmasse(argc - optind, &argv[optind], cp); + enmasse(argc, argv, cp); return EXIT_SUCCESS; }