pride.c : Cleaned up the options, added --size option. makefile : Changed make test.
This commit is contained in:
parent
f198af2774
commit
620f555019
13
makefile
13
makefile
|
@ -18,18 +18,11 @@ $(NAME): pride.o
|
|||
|
||||
test: $(NAME)
|
||||
@./$(NAME)
|
||||
@./$(NAME) pride
|
||||
@./$(NAME) philly
|
||||
@./$(NAME) pride-7
|
||||
@./$(NAME) harvey-milk
|
||||
@./$(NAME) black-trans
|
||||
@./$(NAME) trans
|
||||
@./$(NAME) lesbian
|
||||
@./$(NAME) nonbinary
|
||||
@./$(NAME) genderqueer
|
||||
@./$(NAME) asexual
|
||||
@./$(NAME) test
|
||||
@./$(NAME) --list
|
||||
@./$(NAME) --show
|
||||
@./$(NAME) --help
|
||||
@./$(NAME) -s 4 test
|
||||
|
||||
clean:
|
||||
rm *.o
|
||||
|
|
69
pride.c
69
pride.c
|
@ -449,30 +449,75 @@ void flag(flag_t *flag)
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
/* show available flags with name and description*/
|
||||
void option_show()
|
||||
{
|
||||
printf("Available flags:\n");
|
||||
for(int i = 0; flags[i]!=NULL; i++){
|
||||
printf(" %s\n", flags[i]->name);
|
||||
flag_sized(flags[i], 9);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* list available flags */
|
||||
void option_list()
|
||||
{
|
||||
for(int i = 0; flags[i]!=NULL; i++){
|
||||
printf(" %s\n", flags[i]->name);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
return;
|
||||
}
|
||||
|
||||
void option_help()
|
||||
{
|
||||
printf("pride\n\tPrints pride flags.\n\n");
|
||||
printf("Format: pride [options] FLAG\n\n");
|
||||
printf("Options:\n");
|
||||
printf("\t--help -h : Display this message.\n");
|
||||
printf("\t--list : Show a list of the available flags.\n");
|
||||
printf("\t--show : Like --list, but also displays the flags alongside their names.\n");
|
||||
printf("\t--size -s : Adjusts the size of the flag in lines. Default is 12.\n");
|
||||
printf("\t example: pride -s 10 lesbian\n");
|
||||
exit(EXIT_SUCCESS);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if(argc >= 2){
|
||||
const int max_option_length = 30;
|
||||
|
||||
int size = 12; /* size of the flag, defaults to 12 */
|
||||
|
||||
for(int arg = 1; arg <= argc; arg++){
|
||||
if(!strncmp("--list",argv[arg],max_option_length)){
|
||||
/* list available flags */
|
||||
for(int i = 0; flags[i]!=NULL; i++){
|
||||
printf(" %s\n", flags[i]->name);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
option_list();
|
||||
}else if(!strncmp("--show",argv[arg],max_option_length)){
|
||||
/* show available flags with name and description*/
|
||||
for(int i = 0; flags[i]!=NULL; i++){
|
||||
printf(" %s\n", flags[i]->name);
|
||||
flag(flags[i]);
|
||||
option_show();
|
||||
}else if(!strncmp("-h",argv[arg],max_option_length)||
|
||||
!strncmp("--help",argv[arg],max_option_length)){
|
||||
option_help();
|
||||
}else if(!strncmp("-s",argv[arg],max_option_length)||
|
||||
!strncmp("--size",argv[arg],max_option_length)){
|
||||
/* --size, -s : Change the size of the flag in lines.*/
|
||||
if((arg + 1) <= argc){
|
||||
arg++;
|
||||
size = atoi(argv[arg]);
|
||||
if(size <= 0){
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}else{
|
||||
/* search for flag */
|
||||
for(int i = 0; flags[i]!=NULL; i++){
|
||||
if(!strncmp(flags[i]->name,argv[arg],max_option_length)){
|
||||
flag(flags[i]);
|
||||
flag_sized(flags[i], size);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue