@@ -14,13 +14,13 @@ find_palettes(void)
14
14
{
15
15
if ( access ("/usr/share/kfc/palettes" , F_OK ) == 0 )
16
16
{
17
- strcpy (p .SEQ , "/usr/share/kfc/palettes" );
17
+ strcpy (p .seq , "/usr/share/kfc/palettes" );
18
18
return 0 ;
19
19
}
20
20
21
21
if ( access ("palettes" , F_OK ) == 0 )
22
22
{
23
- strcpy (p .SEQ , "palettes" );
23
+ strcpy (p .seq , "palettes" );
24
24
return 0 ;
25
25
}
26
26
@@ -32,7 +32,7 @@ select_palette(void)
32
32
{
33
33
p .len = 255 ;
34
34
p .line = malloc (sizeof (char ) * p .len );
35
- p .fp = fopen (p .SEL , "r" );
35
+ p .fp = fopen (p .sel , "r" );
36
36
37
37
if (p .fp == NULL )
38
38
{
@@ -42,14 +42,14 @@ select_palette(void)
42
42
43
43
while (fgets (p .line , p .len , p .fp ) != NULL )
44
44
{
45
- p .EVAR = strtok (p .line , "=" );
46
- p .EVAL = strtok (NULL , "=" );
47
- setenv (p .EVAR , p .EVAL , 1 );
45
+ p .evar = strtok (p .line , "=" );
46
+ p .eval = strtok (NULL , "=" );
47
+ setenv (p .evar , p .eval , 1 );
48
48
}
49
49
50
50
fclose (p .fp );
51
51
free (p .line );
52
- sprintf (p .PRI , "printf %%b \"\
52
+ sprintf (p .pri , "printf %%b \"\
53
53
\\033]4;0;#$(echo $color00)\\033\\ \
54
54
\\033]4;1;#$(echo $color01)\\033\\ \
55
55
\\033]4;2;#$(echo $color02)\\033\\ \
@@ -69,23 +69,23 @@ select_palette(void)
69
69
\\033]10;#$(echo $foreground)\\033\\ \
70
70
\\033]11;#$(echo $background)\\033\\ \
71
71
\\033]12;#$(echo $cursor)\\033\\ \" \033[21D" );
72
- p .fp = fopen (p .CSEQ , "w" );
73
- fprintf (p .fp , "%s" , p .PRI );
72
+ p .fp = fopen (p .cseq , "w" );
73
+ fprintf (p .fp , "%s" , p .pri );
74
74
fclose (p .fp );
75
- p .fp = fopen (p .CCUR , "w" );
76
- fprintf (p .fp , "%s" , p .SEL );
75
+ p .fp = fopen (p .ccur , "w" );
76
+ fprintf (p .fp , "%s" , p .sel );
77
77
fclose (p .fp );
78
- sprintf (p .CLI , "%s" , p .PRI );
79
- system (p .CLI );
78
+ sprintf (p .cli , "%s" , p .pri );
79
+ system (p .cli );
80
80
return 0 ;
81
81
}
82
82
83
83
int
84
84
list_palette (void )
85
85
{
86
- p .dr = opendir (p .SEL );
86
+ p .dr = opendir (p .sel );
87
87
88
- if (p .dr == NULL )
88
+ if ( p .dr == NULL )
89
89
{
90
90
fprintf (stderr , "Could not open directory\n" );
91
91
return 1 ;
@@ -106,10 +106,10 @@ list_palette(void)
106
106
int
107
107
random_palette (void )
108
108
{
109
- p .dr = opendir (p .SEL );
109
+ p .dr = opendir (p .sel );
110
110
p .randf = 0 ;
111
111
112
- if (p .dr == NULL )
112
+ if ( p .dr == NULL )
113
113
{
114
114
fprintf (stderr , "Could not open directory\n" );
115
115
return 1 ;
@@ -124,13 +124,13 @@ random_palette(void)
124
124
srand (time (0 ));
125
125
p .i = (rand () % (p .randf - 2 + 1 )) + 2 ;
126
126
p .randf = 0 ;
127
- p .dr = opendir (p .SEL );
128
- while (( de = readdir (p .dr )) != NULL )
127
+ p .dr = opendir (p .sel );
128
+ while ( ( de = readdir (p .dr )) != NULL )
129
129
{
130
130
if (p .i == p .randf )
131
131
{
132
- strcat (p .SEL , "/" );
133
- strcat (p .SEL , de -> d_name );
132
+ strcat (p .sel , "/" );
133
+ strcat (p .sel , de -> d_name );
134
134
}
135
135
p .randf ++ ;
136
136
}
@@ -142,7 +142,7 @@ print_palette(void)
142
142
{
143
143
p .len = 255 ;
144
144
p .line = malloc (sizeof (char ) * p .len );
145
- p .fp = fopen (p .CCUR , "r" );
145
+ p .fp = fopen (p .ccur , "r" );
146
146
147
147
if (p .fp == NULL )
148
148
{
@@ -154,7 +154,7 @@ print_palette(void)
154
154
fclose (p .fp );
155
155
free (p .line );
156
156
157
- for (p .i = 0 ; p .i < 15 ; p .i ++ )
157
+ for ( p .i = 0 ; p .i < 15 ; p .i ++ )
158
158
{
159
159
printf ("\033[48;5;%dm \033[0m" , p .i );
160
160
@@ -168,6 +168,21 @@ print_palette(void)
168
168
return 0 ;
169
169
}
170
170
171
+ int
172
+ print_usage (void )
173
+ {
174
+ printf ("\
175
+ usage: kfc [-s palette|-r|-L] [l|-v|-p]\n \
176
+ -s palette Select a palette\n \
177
+ -l List all palettes\n \
178
+ -p Print current palette\n \
179
+ -r Select a random palette\n \
180
+ -L Set light themes (modifier for -s/-r)\n \
181
+ -h Show this information\n \
182
+ -v Show version information\n" );
183
+ return 0 ;
184
+ }
185
+
171
186
int
172
187
main (int argc , char * * argv )
173
188
{
@@ -179,23 +194,25 @@ main(int argc, char **argv)
179
194
180
195
extern char * optarg ;
181
196
extern int optind , optopt ;
182
- p .MODE = "dark" ;
197
+ int eflag , sflag , rflag , lflag ;
198
+ eflag = sflag = rflag = lflag = 0 ;
199
+ p .mode = "dark" ;
183
200
184
- if ( (p .CONF = getenv ("XDG_CONFIG_HOME" )) == NULL )
201
+ if ( (p .conf = getenv ("XDG_CONFIG_HOME" )) == NULL )
185
202
{
186
203
fprintf (stderr , "XDG_CONFIG_HOME not defined\n" );
187
204
exit (2 );
188
205
}
189
206
190
- strcat (p .CONF , "/kfc" );
207
+ strcat (p .conf , "/kfc" );
191
208
192
- if ( mkdir (p .CONF , 0777 ) == 0 )
209
+ if ( mkdir (p .conf , 0777 ) == 0 )
193
210
{
194
211
puts ("Created 'kfc' directory in XDG_CONFIG_HOME." );
195
212
}
196
213
197
- snprintf (p .CCUR , sizeof (p .CCUR ), "%s/current" , p .CONF );
198
- snprintf (p .CSEQ , sizeof (p .CSEQ ), "%s/sequence" , p .CONF );
214
+ snprintf (p .ccur , sizeof (p .ccur ), "%s/current" , p .conf );
215
+ snprintf (p .cseq , sizeof (p .cseq ), "%s/sequence" , p .conf );
199
216
200
217
if (find_palettes () == 1 )
201
218
{
@@ -207,51 +224,69 @@ main(int argc, char **argv)
207
224
{
208
225
switch (p .cval )
209
226
{
210
- case 'r' :
211
- snprintf (p .SEL , sizeof (p .SEL ), "%s/%s" , p .SEQ , p .MODE );
212
- random_palette ();
213
- select_palette ();
214
- break ;
215
- case 'l' :
216
- snprintf (p .SEL , sizeof (p .SEL ), "%s/%s" , p .SEQ , p .MODE );
217
- list_palette ();
218
- break ;
219
- case 'L' :
220
- p .MODE = "light" ;
221
- break ;
222
227
case 'v' :
223
- printf ("0.0.8\n " );
228
+ puts ("0.0.8" );
224
229
break ;
225
230
case 'h' :
226
- p . FLAG ++ ;
231
+ print_usage () ;
227
232
break ;
233
+ case 'L' :
234
+ p .mode = "light" ;
235
+ break ;
236
+ case 'l' :
237
+ lflag ++ ;
238
+ break ;
239
+ case 'r' :
240
+ sflag ++ ;
241
+ rflag ++ ;
242
+ break ;
228
243
case 's' :
229
- snprintf (p .SEL , sizeof (p .SEL ), "%s/%s/%s" , p .SEQ , p .MODE , optarg );
230
- select_palette ();
244
+ if (rflag )
245
+ {
246
+ fprintf (stderr , "Cannot specify -r with -s\n" );
247
+ eflag ++ ;
248
+ }
249
+ sflag ++ ;
250
+ p .sval = optarg ;
231
251
break ;
232
252
case 'p' :
233
253
print_palette ();
234
254
break ;
235
255
case ':' :
236
256
fprintf (stderr , "Option -%c requires an operand\n" , optopt );
237
- p . FLAG ++ ;
257
+ eflag ++ ;
238
258
break ;
239
259
case '?' :
240
260
fprintf (stderr , "Unrecognized option: -%c\n" , optopt );
241
- p . FLAG ++ ;
261
+ eflag ++ ;
242
262
}
243
- }
244
- if (p .FLAG )
263
+ }
264
+
265
+ if (eflag )
245
266
{
246
- printf ("\
247
- usage: kfc [-s palette|-r|-L] [l|-v|-p]\n \
248
- -s palette Select a palette\n \
249
- -l List all palettes\n \
250
- -p Print current palette\n \
251
- -r Select a random palette\n \
252
- -L Set light themes (modifier for -s/-r)\n \
253
- -h Show this information\n \
254
- -v Show version information\n" );
255
- }
267
+ print_usage ();
268
+ exit (2 );
269
+ }
270
+
271
+ snprintf (p .sel , sizeof (p .sel ), "%s/%s" , p .seq , p .mode );
272
+
273
+ if (lflag )
274
+ {
275
+ list_palette ();
276
+ }
277
+
278
+ if (sflag )
279
+ {
280
+ if (rflag )
281
+ {
282
+ random_palette ();
283
+ }
284
+ else
285
+ {
286
+ snprintf (p .sel , sizeof (p .sel ), "%s/%s/%s" , p .seq , p .mode , p .sval );
287
+ }
288
+ select_palette ();
289
+ }
290
+
256
291
return 0 ;
257
292
}
0 commit comments