Nothing much

This commit is contained in:
Felizitas 2022-10-26 19:46:21 +02:00
parent 10e8d9df17
commit 14eb6244f4
2 changed files with 0 additions and 216 deletions

View file

@ -1,198 +0,0 @@
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#define COLOR_BG(C) printf("\x1b[48;2;%i;%i;%im", C.r, C.g, C.b)
#define COLOR_FG(C) printf("\x1b[38;2;%i;%i;%im", C.r, C.g, C.b)
#define COLOR_RESET printf("\x1b[00m")
typedef struct
{
uint8_t r;
uint8_t g;
uint8_t b;
}color;
typedef struct
{
int stripes;
const char *name;
const color colors[];
}flag_horizontal_t;
/* common 6-striped pride flag */
flag_horizontal_t pride_6 = {
.stripes = 6,
.name = "pride",
.colors = {{.r=0xe7, .g=0x00 ,.b=0x00},
{.r=0xff, .g=0x8c ,.b=0x00},
{.r=0xff, .g=0xef ,.b=0x00},
{.r=0x00, .g=0x81 ,.b=0x1F},
{.r=0x00, .g=0x44 ,.b=0xFF},
{.r=0x76, .g=0x00 ,.b=0x98}
}
};
/* 7-striped pride flag */
flag_horizontal_t pride_7 = {
.stripes = 7,
.name = "pride-7",
.colors = {{.r=0xff, .g=0x00 ,.b=0x00},
{.r=0xff, .g=0x7f ,.b=0x00},
{.r=0xff, .g=0xff ,.b=0x00},
{.r=0x00, .g=0xff ,.b=0x00},
{.r=0x00, .g=0x00 ,.b=0xff},
{.r=0x00, .g=0x4b ,.b=0x82},
{.r=0x94, .g=0x00 ,.b=0xd3}
}
};
/* harvey milk pride flag (the original pride flag) */
flag_horizontal_t pride_harvey_milk = {
.stripes = 8,
.name = "harvey-milk",
.colors = {{.r=0xff, .g=0x69 ,.b=0xb4},
{.r=0xff, .g=0x00 ,.b=0x00},
{.r=0xff, .g=0x8e ,.b=0x00},
{.r=0xf0, .g=0xf0 ,.b=0x00},
{.r=0x00, .g=0x8e ,.b=0x00},
{.r=0x00, .g=0xc0 ,.b=0xc0},
{.r=0x40, .g=0x4b ,.b=0x98},
{.r=0x8e, .g=0x00 ,.b=0x8e}
}
};
/* philly pride flag */
flag_horizontal_t pride_philly = {
.stripes = 8,
.name = "philly",
.colors = {{.r=0x02, .g=0x02 ,.b=0x02},
{.r=0x78, .g=0x4f ,.b=0x17},
{.r=0xe7, .g=0x00 ,.b=0x00},
{.r=0xff, .g=0x8c ,.b=0x00},
{.r=0xff, .g=0xef ,.b=0x00},
{.r=0x00, .g=0x81 ,.b=0x1F},
{.r=0x00, .g=0x44 ,.b=0xFF},
{.r=0x76, .g=0x00 ,.b=0x98}
}
};
/* trans* pride flag */
flag_horizontal_t pride_trans = {
.stripes = 5,
.name = "trans",
.colors = {{.r=0x55, .g=0xcd ,.b=0xfc},
{.r=0xf7, .g=0xa8 ,.b=0xb8},
{.r=0xff, .g=0xff ,.b=0xff},
{.r=0xf7, .g=0xa8 ,.b=0xb8},
{.r=0x55, .g=0xcd ,.b=0xfc}
}
};
/* (new) lesbian pride flag */
flag_horizontal_t pride_lesbian = {
.stripes = 5,
.name = "lesbian",
.colors = {{.r=0xd6, .g=0x29 ,.b=0x00},
{.r=0xff, .g=0x9b ,.b=0x55},
{.r=0xff, .g=0xff ,.b=0xff},
{.r=0xd4, .g=0x61 ,.b=0xa6},
{.r=0xa5, .g=0x00 ,.b=0x62}
}
};
/* nonbinary flag */
flag_horizontal_t pride_nonbinary = {
.stripes = 4,
.name = "nonbinary",
.colors = {{.r=0x9c, .g=0x5c ,.b=0xd4},
{.r=0xff, .g=0xff ,.b=0xff},
{.r=0xfc, .g=0xf4 ,.b=0x34},
{.r=0x00, .g=0x00 ,.b=0x00}
}
};
/* genderqueer flag */
flag_horizontal_t pride_genderqueer = {
.stripes = 3,
.name = "genderqueer",
.colors = {{.r=0xb5, .g=0x7e ,.b=0xdc},
{.r=0xff, .g=0xff ,.b=0xff},
{.r=0x4a, .g=0x81 ,.b=0x23}
}
};
/* asexual flag */
flag_horizontal_t pride_ace = {
.stripes = 4,
.name = "asexual",
.colors = {{.r=0x00, .g=0x00 ,.b=0x00},
{.r=0xc3, .g=0xc3 ,.b=0xc3},
{.r=0xff, .g=0xff ,.b=0xff},
{.r=0x84, .g=0x06 ,.b=0x7c}
}
};
/* ----- flags end here ----- */
/* index of flags */
flag_horizontal_t *flags[] = {
&pride_6,
&pride_7,
&pride_harvey_milk,
&pride_philly,
&pride_trans,
&pride_lesbian,
&pride_nonbinary,
&pride_genderqueer,
&pride_ace,
NULL};
/* prints flags made solely made from horizontal bars */
void flag_horizontal(flag_horizontal_t *flag)
{
for(int i=0; i<flag->stripes; i++){
COLOR_BG(flag->colors[i]);
/* aspect ratio is hardcoded here */
for(int spaces=flag->stripes*3; spaces>0; spaces--){
putchar(' ');
}
COLOR_RESET;
putchar('\n');
}
return;
}
int main(int argc, char *argv[])
{
if(argc >= 2){
const int max_option_length = 30;
if(!strncmp("--list",argv[1],max_option_length)){
/* list available flags */
for(int i = 0; flags[i]!=NULL; i++){
printf("%s\n", flags[i]->name);
}
exit(EXIT_SUCCESS);
}else{
/* search for flag */
for(int i = 0; flags[i]!=NULL; i++){
if(!strncmp(flags[i]->name,argv[1],max_option_length)){
printf("flag: %s\n", flags[i]->name);
flag_horizontal(flags[i]);
exit(EXIT_SUCCESS);
}
}
/* if argument unknown, complain loudly */
fprintf(stderr,"ERROR: invalid option:\t%s\n",argv[1]);
exit(EXIT_FAILURE);
}
}else{
/* if no option given, print 6-stripe pride-flag */
flag_horizontal(&pride_6);
}
exit(EXIT_SUCCESS);
}

18
pride.c
View file

@ -118,23 +118,6 @@ flag_t pride_philly = {
}
};
/* Estêvão Romane "Love Fest" flag */
flag_t pride_love_fest = {
.stripes = 9,
.bars = 1,
.name = "love-fest",
.colors = {{.r=0xff, .g=0x69 ,.b=0xb4},
{.r=0xff, .g=0x00 ,.b=0x00},
{.r=0xff, .g=0x8e ,.b=0x00},
{.r=0xf0, .g=0xf0 ,.b=0x00},
{.r=0xff, .g=0xff ,.b=0xff},
{.r=0x00, .g=0x8e ,.b=0x00},
{.r=0x00, .g=0xc0 ,.b=0xc0},
{.r=0x40, .g=0x4b ,.b=0x98},
{.r=0x8e, .g=0x00 ,.b=0x8e}
}
};
/* (new) lesbian pride flag */
flag_t pride_lesbian = {
.stripes = 5,
@ -402,7 +385,6 @@ flag_t *flags[] = {
&pride_harvey_milk,
&pride_gilbert_baker_2017,
&pride_philly,
&pride_love_fest,
&pride_lesbian,
&pride_lesbian_7,
&pride_cetero,