@@ -200,74 +200,77 @@ int parse_global_config(struct global_config *global_config) {
200200 ext4_file fp ;
201201 unsigned char * buf ;
202202
203- ret = ext4_fopen (& fp , GLOBAL_CONFIG_FILE , "r" );
204- if (ret != 0 ){
205- global_config -> default_entry_title = NULL ;
206- global_config -> timeout = 20 ;
207- droidboot_log (DROIDBOOT_LOG_WARNING , "config_parser: no global config found\n" );
208- // Background color
209- global_config -> win_bg_color = 0x000000 ;
203+ global_config -> default_entry_title = NULL ;
204+ global_config -> timeout = 20 ;
210205
211- // Radius
212- global_config -> win_radius = 0 ;
206+ // Background color
207+ global_config -> win_bg_color = 0x000000 ;
213208
214- // Border width
215- global_config -> win_border_size = 0 ;
209+ // Radius
210+ global_config -> win_radius = 0 ;
216211
217- // Border color
218- global_config -> win_border_color = 0xffffff ;
212+ // Border width
213+ global_config -> win_border_size = 0 ;
219214
220- // List background color
221- global_config -> list_bg_color = 0x000000 ;
215+ // Border color
216+ global_config -> win_border_color = 0xffffff ;
222217
223- // List radius
224- global_config -> list_radius = 0 ;
218+ // List background color
219+ global_config -> list_bg_color = 0x000000 ;
225220
226- // List border width
227- global_config -> list_border_size = 0 ;
221+ // List radius
222+ global_config -> list_radius = 0 ;
228223
229- // List border color
230- global_config -> list_border_color = 0xffffff ;
224+ // List border width
225+ global_config -> list_border_size = 0 ;
231226
232- // Button color
233- global_config -> button_unselected_color = 0x000000 ;
227+ // List border color
228+ global_config -> list_border_color = 0xffffff ;
234229
235- // Button text color
236- global_config -> button_unselected_text_color = 0xffffff ;
230+ // Button color
231+ global_config -> button_unselected_color = 0x000000 ;
237232
238- // Button selected color
239- global_config -> button_selected_color = 0xff9800 ;
233+ // Button text color
234+ global_config -> button_unselected_text_color = 0xffffff ;
240235
241- // Button selected text color
242- global_config -> button_selected_text_color = 0x000000 ;
236+ // Button selected color
237+ global_config -> button_selected_color = 0xff9800 ;
243238
244- // Button border width
245- global_config -> button_border_unselected_size = 1 ;
239+ // Button selected text color
240+ global_config -> button_selected_text_color = 0x000000 ;
246241
247- // Button border color
248- global_config -> button_border_unselected_color = 0xffffff ;
242+ // Button border width
243+ global_config -> button_border_unselected_size = 1 ;
249244
250- // Button border selected width
251- global_config -> button_border_selected_size = 1 ;
245+ // Button border color
246+ global_config -> button_border_unselected_color = 0xffffff ;
252247
253- // Button border selected color
254- global_config -> button_border_selected_color = 0xffffff ;
248+ // Button border selected width
249+ global_config -> button_border_selected_size = 1 ;
255250
256- // Button grow by default
257- global_config -> button_grow_default = true ;
251+ // Button border selected color
252+ global_config -> button_border_selected_color = 0xffffff ;
258253
259- // Button radius
260- global_config -> button_radius = 0 ;
254+ // Button grow by default
255+ global_config -> button_grow_default = true ;
261256
262- // Global font size
263- global_config -> global_font_size = 0 ;
257+ // Button radius
258+ global_config -> button_unselected_radius = 0 ;
264259
265- // Global font name
266- global_config -> global_font_name = NULL ;
260+ // Button selected radius
261+ global_config -> button_selected_radius = 0 ;
267262
268- return 0 ;
263+ // Global font size
264+ global_config -> global_font_size = 0 ;
269265
270- }
266+ // Global font name
267+ global_config -> global_font_name = NULL ;
268+
269+ ret = ext4_fopen (& fp , GLOBAL_CONFIG_FILE , "r" );
270+ if (ret != 0 ) {
271+ droidboot_log (DROIDBOOT_LOG_WARNING , "config_parser: no global config found\n" );
272+ return 0 ;
273+ }
271274
272275 ext4_fseek (& fp , 0 , SEEK_END );
273276 uint64_t fsize = ext4_ftell (& fp );
@@ -280,132 +283,128 @@ int parse_global_config(struct global_config *global_config) {
280283 ext4_fclose (& fp );
281284 buf [fsize ] = '\0' ;
282285
283- ret = config_parse_option (& global_config -> default_entry_title , "default" , (const char * )buf );
284- if (ret < 0 ) {
285- global_config -> default_entry_title = NULL ;
286- }
286+ char * default_entry_title = NULL ;
287+ ret = config_parse_option (& default_entry_title , "default" , (const char * )buf );
288+ if (ret >= 0 ) global_config -> default_entry_title = default_entry_title ;
287289 droidboot_log (DROIDBOOT_LOG_INFO , "config_parser: default config parse done\n" );
288290
289291 char * timeout = NULL ;
290292 ret = config_parse_option (& timeout , "timeout" , (const char * )buf );
291- if (ret < 0 ) global_config -> timeout = 20 ;
292- else global_config -> timeout = (int )droidboot_atoi (timeout );
293+ if (ret >=0 ) global_config -> timeout = (int )droidboot_atoi (timeout );
293294 droidboot_log (DROIDBOOT_LOG_INFO , "config_parser: timeout is: %d seconds\n" , global_config -> timeout );
294295
295296 // Theme parsing
296297
297298 // Background color
298299 char * win_bg_color = NULL ;
299300 ret = config_parse_option (& win_bg_color , "win_bg_color" , (const char * )buf );
300- if (ret < 0 ) global_config -> win_bg_color = 0x000000 ;
301- else global_config -> win_bg_color = droidboot_strtol (win_bg_color , NULL , 16 );
301+ if (ret >=0 ) global_config -> win_bg_color = droidboot_strtol (win_bg_color , NULL , 16 );
302302 free (win_bg_color );
303303
304304 // Radius
305305 char * win_radius = NULL ;
306306 ret = config_parse_option (& win_radius , "win_radius" , (const char * )buf );
307- if (ret < 0 ) global_config -> win_radius = 0 ;
308- else global_config -> win_radius = droidboot_atoi (win_radius );
307+ if (ret >=0 ) global_config -> win_radius = droidboot_atoi (win_radius );
309308 free (win_radius );
310309
311310 // Border width
312311 char * win_border_size = NULL ;
313312 ret = config_parse_option (& win_border_size , "win_border_size" , (const char * )buf );
314- if (ret < 0 ) global_config -> win_border_size = 0 ;
315- else global_config -> win_border_size = droidboot_atoi (win_border_size );
313+ if (ret >=0 ) global_config -> win_border_size = droidboot_atoi (win_border_size );
316314 free (win_border_size );
317315
318316 // Border color
319317 char * win_border_color = NULL ;
320318 ret = config_parse_option (& win_border_color , "win_border_color" , (const char * )buf );
321- if (ret < 0 ) global_config -> win_border_color = 0xffffff ;
322- else global_config -> win_border_color = droidboot_strtol (win_border_color , NULL , 16 );
319+ if (ret >=0 ) global_config -> win_border_color = droidboot_strtol (win_border_color , NULL , 16 );
323320 free (win_border_color );
324321
325322 // Button unselected color
326323 char * button_unselected_color = NULL ;
327324 ret = config_parse_option (& button_unselected_color , "button_unselected_color" , (const char * )buf );
328- if (ret < 0 ) global_config -> button_unselected_color = 0x000000 ;
329- else global_config -> button_unselected_color = droidboot_strtol (button_unselected_color , NULL , 16 );
325+ if (ret >=0 ) global_config -> button_unselected_color = droidboot_strtol (button_unselected_color , NULL , 16 );
330326 free (button_unselected_color );
331327
332328 // Button unselected text color
333329 char * button_unselected_text_color = NULL ;
334330 ret = config_parse_option (& button_unselected_text_color , "button_unselected_text_color" , (const char * )buf );
335- if (ret < 0 ) global_config -> button_unselected_text_color = 0xffffff ;
336- else global_config -> button_unselected_text_color = droidboot_strtol (button_unselected_text_color , NULL , 16 );
331+ if (ret >=0 ) global_config -> button_unselected_text_color = droidboot_strtol (button_unselected_text_color , NULL , 16 );
337332 free (button_unselected_text_color );
338333
339334 // Button selected color
340335 char * button_selected_color = NULL ;
341336 ret = config_parse_option (& button_selected_color , "button_selected_color" , (const char * )buf );
342- if (ret < 0 ) global_config -> button_selected_color = 0xff9800 ;
343- else global_config -> button_selected_color = droidboot_strtol (button_selected_color , NULL , 16 );
337+ if (ret >=0 ) global_config -> button_selected_color = droidboot_strtol (button_selected_color , NULL , 16 );
344338 free (button_selected_color );
345339
346340 // Button selected text color
347341 char * button_selected_text_color = NULL ;
348342 ret = config_parse_option (& button_selected_text_color , "button_selected_text_color" , (const char * )buf );
349- if (ret < 0 ) global_config -> button_selected_text_color = 0x000000 ;
350- else global_config -> button_selected_text_color = droidboot_strtol (button_selected_text_color , NULL , 16 );
343+ if (ret >=0 ) global_config -> button_selected_text_color = droidboot_strtol (button_selected_text_color , NULL , 16 );
351344 free (button_selected_text_color );
352345
353346 // Button border size
354347 char * button_border_unselected_size = NULL ;
355348 ret = config_parse_option (& button_border_unselected_size , "button_border_unselected_size" , (const char * )buf );
356- if (ret < 0 ) global_config -> button_border_unselected_size = 1 ;
357- else global_config -> button_border_unselected_size = droidboot_atoi (button_border_unselected_size );
349+ if (ret >=0 ) global_config -> button_border_unselected_size = droidboot_atoi (button_border_unselected_size );
358350 free (button_border_unselected_size );
359351
360352 // Button border color
361353 char * button_border_unselected_color = NULL ;
362354 ret = config_parse_option (& button_border_unselected_color , "button_border_unselected_color" , (const char * )buf );
363- if (ret < 0 ) global_config -> button_border_unselected_color = 0xffffff ;
364- else global_config -> button_border_unselected_color = droidboot_strtol (button_border_unselected_color , NULL , 16 );
355+ if (ret >=0 ) global_config -> button_border_unselected_color = droidboot_strtol (button_border_unselected_color , NULL , 16 );
365356 free (button_border_unselected_color );
366357
367358 // Button border selected color
368359 char * button_border_selected_color = NULL ;
369360 ret = config_parse_option (& button_border_selected_color , "button_border_selected_color" , (const char * )buf );
370- if (ret < 0 ) global_config -> button_border_selected_color = 0xffffff ;
371- else global_config -> button_border_selected_color = droidboot_strtol (button_border_selected_color , NULL , 16 );
361+ if (ret >=0 ) global_config -> button_border_selected_color = droidboot_strtol (button_border_selected_color , NULL , 16 );
372362 free (button_border_selected_color );
373363
374364 // Button border selected size
375365 char * button_border_selected_size = NULL ;
376366 ret = config_parse_option (& button_border_selected_size , "button_border_selected_size" , (const char * )buf );
377- if (ret < 0 ) global_config -> button_border_selected_size = 1 ;
378- else global_config -> button_border_selected_size = droidboot_atoi (button_border_selected_size );
367+ if (ret >=0 ) global_config -> button_border_selected_size = droidboot_atoi (button_border_selected_size );
379368 free (button_border_selected_size );
380369
381370 // Button grow by default
382371 char * button_grow_default = NULL ;
383372 ret = config_parse_option (& button_grow_default , "button_grow_default" , (const char * )buf );
384- if (ret < 0 || strcmp (button_grow_default , "true" ) == 0 )
385- global_config -> button_grow_default = true;
386- else
387- global_config -> button_grow_default = false;
373+ if (ret >= 0 ) {
374+ if (strcmp (button_grow_default , "true" ) == 0 )
375+ global_config -> button_grow_default = true;
376+ else
377+ global_config -> button_grow_default = false;
378+ }
388379 free (button_grow_default );
389380
390381 // Button radius
391- char * button_radius = NULL ;
392- ret = config_parse_option (& button_radius , "button_radius" , (const char * )buf );
393- if (ret < 0 ) global_config -> button_radius = 0 ;
394- else global_config -> button_radius = droidboot_atoi (button_radius );
395- free (button_radius );
382+ char * button_unselected_radius = NULL ;
383+ ret = config_parse_option (& button_unselected_radius , "button_unselected_radius" , (const char * )buf );
384+ if (ret >=0 ) global_config -> button_unselected_radius = droidboot_atoi (button_unselected_radius );
385+ free (button_unselected_radius );
386+
387+ // Button selected radius
388+ char * button_selected_radius = NULL ;
389+ ret = config_parse_option (& button_selected_radius , "button_selected_radius" , (const char * )buf );
390+ if (ret >=0 ) global_config -> button_selected_radius = droidboot_atoi (button_selected_radius );
391+ free (button_selected_radius );
396392
397393 // Global font size
398394 char * global_font_size = NULL ;
399395 ret = config_parse_option (& global_font_size , "global_font_size" , (const char * )buf );
400- if (ret < 0 ) global_config -> global_font_size = 0 ;
401- else global_config -> global_font_size = droidboot_atoi (global_font_size );
396+ if (ret >=0 ) global_config -> global_font_size = droidboot_atoi (global_font_size );
402397 free (global_font_size );
403398
404399 // Global font name
405400 char * global_font_name = NULL ;
406401 ret = config_parse_option (& global_font_name , "global_font_name" , (const char * )buf );
407- if (ret < 0 ) global_config -> global_font_name = NULL ;
408- else global_config -> global_font_name = global_font_name ;
402+ if (ret >=0 ) {
403+ if (strlen (global_font_name ) == 0 )
404+ global_config -> global_font_name = NULL ;
405+ else
406+ global_config -> global_font_name = global_font_name ;
407+ }
409408
410409 return 0 ;
411410}
0 commit comments