Using getopt() for coherence with the other tools

This commit is contained in:
Pierre Pronchery 2009-10-20 19:52:21 +00:00
parent a2d1e75ceb
commit ba5ede08e4

View File

@ -16,8 +16,9 @@
#include <libgen.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <libgen.h>
#include <string.h> #include <string.h>
@ -36,7 +37,7 @@ static int _basename(char * arg, char const * suf)
if(alen < slen && strcmp(suf, &str[slen - alen]) == 0) if(alen < slen && strcmp(suf, &str[slen - alen]) == 0)
str[slen - alen] = '\0'; str[slen - alen] = '\0';
} }
printf("%s\n", str); puts(str);
return 0; return 0;
} }
@ -52,9 +53,15 @@ static int _usage(void)
/* main */ /* main */
int main(int argc, char * argv[]) int main(int argc, char * argv[])
{ {
if(argc == 2) int o;
return _basename(argv[1], NULL);
if(argc == 3) while((o = getopt(argc, argv, "")) != -1)
return _basename(argv[1], argv[2]); switch(o)
{
default:
return _usage(); return _usage();
} }
if(optind != argc - 1 && optind != argc - 2)
return _usage();
return (_basename(argv[optind], argv[optind + 1]) == 0) ? 0 : 2;
}