sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit e509d56bae7fd9799ae47d081d8b5dbaf6a3efe8
parent 5c7b7e3fa85157e9771304ab0b5a0ea8218b25ae
Author: Federico G. Benavento <benavento@gmail.com>
Date:   Sun, 10 Mar 2013 21:59:22 -0300

s/getopt/ARGBEGIN/ and -r bug fix cp

Diffstat:
Mcp.c | 22++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/cp.c b/cp.c @@ -1,7 +1,6 @@ /* See LICENSE file for copyright and license details. */ #include <stdbool.h> #include <stdlib.h> -#include <unistd.h> #include <sys/stat.h> #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; }