@@ -47,6 +47,7 @@ select_palette(void)
47
47
envval = strtok (NULL , "=" );
48
48
setenv (envvar , envval , 1 );
49
49
}
50
+
50
51
fclose (p .fp );
51
52
free (p .line );
52
53
sprintf (p .PRI , "printf %%b \"\
@@ -92,7 +93,7 @@ list_palette(void)
92
93
return 1 ;
93
94
}
94
95
95
- while ((de = readdir (p .dr )) != NULL )
96
+ while ( (de = readdir (p .dr )) != NULL )
96
97
{
97
98
puts (de -> d_name );
98
99
}
@@ -107,22 +108,24 @@ random_palette(void)
107
108
struct dirent * de ;
108
109
p .dr = opendir (p .SEL );
109
110
p .randf = 0 ;
111
+
110
112
if (p .dr == NULL )
111
113
{
112
114
fprintf (stderr , "Could not open directory\n" );
113
115
return 1 ;
114
116
}
115
117
116
- while ((de = readdir (p .dr )) != NULL )
118
+ while ( (de = readdir (p .dr )) != NULL )
117
119
{
118
120
p .randf ++ ;
119
121
}
122
+
120
123
closedir (p .dr );
121
124
srand (time (0 ));
122
125
p .i = (rand () % (p .randf - 2 + 1 )) + 2 ;
123
126
p .randf = 0 ;
124
127
p .dr = opendir (p .SEL );
125
- while ((de = readdir (p .dr )) != NULL )
128
+ while (( de = readdir (p .dr )) != NULL )
126
129
{
127
130
if (p .i == p .randf )
128
131
{
@@ -140,9 +143,16 @@ print_palette(void)
140
143
p .len = 255 ;
141
144
p .line = malloc (sizeof (char ) * p .len );
142
145
p .fp = fopen (p .CCUR , "r" );
146
+
147
+ if (p .fp == NULL )
148
+ {
149
+ fprintf (stderr , "No palette set or 'current' file missing\n" );
150
+ return 1 ;
151
+ }
143
152
fgets (p .line ,p .len , p .fp );
144
153
puts (p .line );
145
154
fclose (p .fp );
155
+
146
156
for (p .i = 0 ; p .i < 15 ; p .i ++ )
147
157
{
148
158
printf ("\033[48;5;%dm \033[0m" , p .i );
@@ -152,6 +162,7 @@ print_palette(void)
152
162
printf ("\n" );
153
163
}
154
164
}
165
+
155
166
printf ("\n" );
156
167
return 0 ;
157
168
}
@@ -168,27 +179,30 @@ main(int argc, char **argv)
168
179
extern char * optarg ;
169
180
extern int optind , optopt ;
170
181
p .MODE = "dark" ;
182
+
171
183
if ( (p .CONF = getenv ("XDG_CONFIG_HOME" )) == NULL )
172
184
{
173
185
fprintf (stderr , "XDG_CONFIG_HOME not defined\n" );
174
186
exit (2 );
175
187
}
188
+
176
189
strcat (p .CONF , "/kfc" );
177
- snprintf (p .CCUR , sizeof (p .CCUR ), "%s/current" , p .CONF );
178
- snprintf (p .CSEQ , sizeof (p .CSEQ ), "%s/sequence" , p .CONF );
179
190
180
191
if ( mkdir (p .CONF ,0777 ) == 0 )
181
192
{
182
193
puts ("Created 'kfc' directory in XDG_CONFIG_HOME." );
183
194
}
195
+
196
+ snprintf (p .CCUR , sizeof (p .CCUR ), "%s/current" , p .CONF );
197
+ snprintf (p .CSEQ , sizeof (p .CSEQ ), "%s/sequence" , p .CONF );
184
198
185
199
if (find_palettes () == 1 )
186
200
{
187
201
fprintf (stderr , "Palette directory not found\n" );
188
202
exit (2 );
189
203
}
190
204
191
- while ( ( p .cval = getopt (argc , argv , "rlLpvhs:" )) != -1 )
205
+ while ( ( p .cval = getopt (argc , argv , "rlLpvhs:" ) ) != -1 )
192
206
{
193
207
switch (p .cval )
194
208
{
@@ -205,10 +219,10 @@ main(int argc, char **argv)
205
219
p .MODE = "light" ;
206
220
break ;
207
221
case 'v' :
208
- printf ("0.0.7 \n" );
222
+ printf ("0.0.8 \n" );
209
223
break ;
210
224
case 'h' :
211
- p .errf ++ ;
225
+ p .flag ++ ;
212
226
break ;
213
227
case 's' :
214
228
snprintf (p .SEL , sizeof (p .SEL ), "%s/%s/%s" , p .SEQ , p .MODE , optarg );
@@ -219,16 +233,16 @@ main(int argc, char **argv)
219
233
break ;
220
234
case ':' :
221
235
fprintf (stderr , "Option -%c requires an operand\n" , optopt );
222
- p .errf ++ ;
236
+ p .flag ++ ;
223
237
break ;
224
238
case '?' :
225
239
fprintf (stderr , "Unrecognized option: -%c\n" , optopt );
226
- p .errf ++ ;
240
+ p .flag ++ ;
227
241
}
228
242
}
229
- if (p .errf )
243
+ if (p .flag )
230
244
{
231
- fprintf ( stderr , "\
245
+ printf ( "\
232
246
usage: kfc [-s palette|-r|-L] [l|-v|-p]\n \
233
247
-s palette Select a palette\n \
234
248
-l List all palettes\n \
@@ -237,7 +251,6 @@ usage: kfc [-s palette|-r|-L] [l|-v|-p]\n \
237
251
-L Set light themes (modifier for -s/-r)\n \
238
252
-h Show this information\n \
239
253
-v Show version information\n" );
240
- exit (2 );
241
254
}
242
255
return 0 ;
243
256
}
0 commit comments