From 41c33eeb44d1b1a4b476810757f7b91032950439 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 4 Nov 2011 15:48:36 +0100 Subject: Use a global configuration variable This is one of the few valid use cases for a global variable. No need to make it pseudo-local and pass it from one function to another. Signed-off-by: Lukas Fleischer --- src/apoint.c | 4 +-- src/args.c | 58 ++++++++++++++++++++--------------------- src/calcurse.c | 31 +++++++++++----------- src/calcurse.h | 29 +++++++++++---------- src/custom.c | 82 +++++++++++++++++++++++++++++----------------------------- src/day.c | 20 +++++++------- src/dmon.c | 4 +-- src/io.c | 54 +++++++++++++++++++------------------- src/recur.c | 8 +++--- src/todo.c | 4 +-- src/vars.c | 27 ++++++++++--------- 11 files changed, 159 insertions(+), 162 deletions(-) diff --git a/src/apoint.c b/src/apoint.c index 1ca6639..59c49ec 100644 --- a/src/apoint.c +++ b/src/apoint.c @@ -262,7 +262,7 @@ apoint_add (void) /* Delete an item from the appointment list. */ void -apoint_delete (struct conf *conf, unsigned *nb_events, unsigned *nb_apoints) +apoint_delete (unsigned *nb_events, unsigned *nb_apoints) { char *choices = "[y/n] "; char *del_app_str = _("Do you really want to delete this item ?"); @@ -275,7 +275,7 @@ apoint_delete (struct conf *conf, unsigned *nb_events, unsigned *nb_apoints) date = calendar_get_slctd_day_sec (); - if (conf->confirm_delete) + if (conf.confirm_delete) { status_mesg (del_app_str, choices); answer = wgetch (win[STA].p); diff --git a/src/args.c b/src/args.c index c4e4d5c..186dd13 100644 --- a/src/args.c +++ b/src/args.c @@ -330,7 +330,7 @@ next_arg (void) * Print the date on stdout. */ static void -arg_print_date (long date, struct conf *conf) +arg_print_date (long date) { char date_str[BUFSIZ]; time_t t; @@ -338,7 +338,7 @@ arg_print_date (long date, struct conf *conf) t = date; lt = localtime (&t); - strftime (date_str, BUFSIZ, conf->output_datefmt, lt); + strftime (date_str, BUFSIZ, conf.output_datefmt, lt); fputs (date_str, stdout); fputs (":\n", stdout); } @@ -351,7 +351,7 @@ arg_print_date (long date, struct conf *conf) */ static int app_arg (int add_line, struct date *day, long date, int print_note, - struct conf *conf, regex_t *regex) + regex_t *regex) { llist_item_t *i, *j; long today; @@ -384,7 +384,7 @@ app_arg (int add_line, struct date *day, long date, int print_note, } if (print_date) { - arg_print_date (today, conf); + arg_print_date (today); print_date = 0; } fputs (" * ", stdout); @@ -408,7 +408,7 @@ app_arg (int add_line, struct date *day, long date, int print_note, } if (print_date) { - arg_print_date (today, conf); + arg_print_date (today); print_date = 0; } fputs (" * ", stdout); @@ -465,7 +465,7 @@ app_arg (int add_line, struct date *day, long date, int print_note, } if (print_date) { - arg_print_date (today, conf); + arg_print_date (today); print_date = 0; } apoint_sec2str (apt, APPT, today, apoint_start_time, apoint_end_time); @@ -490,7 +490,7 @@ app_arg (int add_line, struct date *day, long date, int print_note, } if (print_date) { - arg_print_date (today, conf); + arg_print_date (today); print_date = 0; } apt = apoint_recur_s2apoint_s (ra); @@ -534,7 +534,7 @@ more_info (void) */ static void display_app (struct tm *t, int numdays, int add_line, int print_note, - struct conf *conf, regex_t *regex) + regex_t *regex) { int i, app_found; struct date day; @@ -544,7 +544,7 @@ display_app (struct tm *t, int numdays, int add_line, int print_note, day.dd = t->tm_mday; day.mm = t->tm_mon + 1; day.yyyy = t->tm_year + 1900; - app_found = app_arg (add_line, &day, 0, print_note, conf, regex); + app_found = app_arg (add_line, &day, 0, print_note, regex); if (app_found) add_line = 1; t->tm_mday++; @@ -557,8 +557,7 @@ display_app (struct tm *t, int numdays, int add_line, int print_note, * days. */ static void -date_arg (char *ddate, int add_line, int print_note, struct conf *conf, - regex_t *regex) +date_arg (char *ddate, int add_line, int print_note, regex_t *regex) { int i; struct date day; @@ -589,14 +588,14 @@ date_arg (char *ddate, int add_line, int print_note, struct conf *conf, */ timer = time (NULL); t = *localtime (&timer); - display_app (&t, numdays, add_line, print_note, conf, regex); + display_app (&t, numdays, add_line, print_note, regex); } else { /* a date was entered */ - if (parse_date (ddate, conf->input_datefmt, (int *)&day.yyyy, + if (parse_date (ddate, conf.input_datefmt, (int *)&day.yyyy, (int *)&day.mm, (int *)&day.dd, NULL)) { - app_arg (add_line, &day, 0, print_note, conf, regex); + app_arg (add_line, &day, 0, print_note, regex); } else { @@ -604,7 +603,7 @@ date_arg (char *ddate, int add_line, int print_note, struct conf *conf, fputs (_("Argument to the '-d' flag is not valid\n"), stderr); snprintf (outstr, BUFSIZ, "Possible argument format are: '%s' or 'n'\n", - DATEFMT_DESC (conf->input_datefmt)); + DATEFMT_DESC (conf.input_datefmt)); fputs (_(outstr), stdout); more_info (); } @@ -621,7 +620,7 @@ date_arg (char *ddate, int add_line, int print_note, struct conf *conf, */ static void date_arg_extended (char *startday, char *range, int add_line, int print_note, - struct conf *conf, regex_t *regex) + regex_t *regex) { int i, numdays = 1, error = 0, arg_len = 0; static struct tm t; @@ -645,7 +644,7 @@ date_arg_extended (char *startday, char *range, int add_line, int print_note, t = *localtime (&timer); if (startday != NULL) { - if (parse_date (startday, conf->input_datefmt, (int *)&t.tm_year, + if (parse_date (startday, conf.input_datefmt, (int *)&t.tm_year, (int *)&t.tm_mon, (int *)&t.tm_mday, NULL)) { t.tm_year -= 1900; @@ -659,7 +658,7 @@ date_arg_extended (char *startday, char *range, int add_line, int print_note, } if (!error) { - display_app (&t, numdays, add_line, print_note, conf, regex); + display_app (&t, numdays, add_line, print_note, regex); } else { @@ -667,7 +666,7 @@ date_arg_extended (char *startday, char *range, int add_line, int print_note, fputs (_("Argument is not valid\n"), stderr); snprintf (outstr, BUFSIZ, "Argument format for -s and --startday is: '%s'\n", - DATEFMT_DESC (conf->input_datefmt)); + DATEFMT_DESC (conf.input_datefmt)); fputs (_(outstr), stdout); fputs (_("Argument format for -r and --range is: 'n'\n"), stdout); more_info (); @@ -680,7 +679,7 @@ date_arg_extended (char *startday, char *range, int add_line, int print_note, * routines to handle those arguments. Also initialize the data paths. */ int -parse_args (int argc, char **argv, struct conf *conf) +parse_args (int argc, char **argv) { int ch, add_line = 0; int unknown_flag = 0; @@ -928,10 +927,10 @@ parse_args (int argc, char **argv, struct conf *conf) io_check_file (path_apts, NULL); io_check_file (path_todo, NULL); /* Get default pager in case we need to show a log file. */ - vars_init (conf); + vars_init (); io_load_app (); io_load_todo (); - io_import_data (IO_IMPORT_ICAL, conf, ifile); + io_import_data (IO_IMPORT_ICAL, ifile); io_save_apts (); io_save_todo (); non_interactive = 1; @@ -942,7 +941,7 @@ parse_args (int argc, char **argv, struct conf *conf) io_check_file (path_todo, NULL); io_load_app (); io_load_todo (); - io_export_data (xfmt, conf); + io_export_data (xfmt); non_interactive = 1; return non_interactive; } @@ -965,12 +964,11 @@ parse_args (int argc, char **argv, struct conf *conf) io_check_file (path_apts, NULL); io_check_file (path_conf, NULL); io_load_app (); - custom_load_conf (conf); /* To get output date format. */ + custom_load_conf (); /* To get output date format. */ if (dflag) - date_arg (ddate, add_line, Nflag, conf, preg); + date_arg (ddate, add_line, Nflag, preg); if (rflag || sflag) - date_arg_extended (startday, range, add_line, Nflag, conf, - preg); + date_arg_extended (startday, range, add_line, Nflag, preg); non_interactive = 1; } else if (aflag) @@ -979,11 +977,11 @@ parse_args (int argc, char **argv, struct conf *conf) io_check_file (path_apts, NULL); io_check_file (path_conf, NULL); - vars_init (conf); - custom_load_conf (conf); /* To get output date format. */ + vars_init (); + custom_load_conf (); /* To get output date format. */ io_load_app (); day.dd = day.mm = day.yyyy = 0; - app_arg (add_line, &day, 0, Nflag, conf, preg); + app_arg (add_line, &day, 0, Nflag, preg); non_interactive = 1; } } diff --git a/src/calcurse.c b/src/calcurse.c index cde2005..35a1fa5 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -64,7 +64,6 @@ do_storage (int day_changed) int main (int argc, char **argv) { - struct conf conf; struct day_items_nb inday; int non_interactive; int no_data_file = 1; @@ -94,7 +93,7 @@ main (int argc, char **argv) * Begin by parsing and handling command line arguments. * The data path is also initialized here. */ - non_interactive = parse_args (argc, argv, &conf); + non_interactive = parse_args (argc, argv); if (non_interactive) exit_calcurse (EXIT_SUCCESS); else @@ -148,7 +147,7 @@ main (int argc, char **argv) background = COLOR_BLACK; } - vars_init (&conf); + vars_init (); wins_init (); wins_slctd_init (); notify_init_bar (); @@ -159,7 +158,7 @@ main (int argc, char **argv) * configuration (the display is then updated), and then * the todo list, appointments and events. */ - custom_load_conf (&conf); + custom_load_conf (); wins_erase_status_bar (); io_load_keys (conf.pager); io_load_todo (); @@ -174,7 +173,7 @@ main (int argc, char **argv) wins_update (FLAG_ALL); calendar_start_date_thread (); if (conf.periodic_save > 0) - io_start_psave_thread (&conf); + io_start_psave_thread (); /* User input */ for (;;) @@ -266,7 +265,7 @@ main (int argc, char **argv) break; case 'G': case 'g': - custom_general_config (&conf); + custom_general_config (); break; case 'N': case 'n': @@ -327,7 +326,7 @@ main (int argc, char **argv) case KEY_EDIT_ITEM: if (wins_slctd () == APP && apoint_hilt () != 0) { - day_edit_item (&conf); + day_edit_item (); inday = do_storage (0); wins_update (FLAG_CAL | FLAG_APP | FLAG_STA); } @@ -341,13 +340,13 @@ main (int argc, char **argv) case KEY_DEL_ITEM: if (wins_slctd () == APP && apoint_hilt () != 0) { - apoint_delete (&conf, &inday.nb_events, &inday.nb_apoints); + apoint_delete (&inday.nb_events, &inday.nb_apoints); inday = do_storage (0); wins_update (FLAG_CAL | FLAG_APP | FLAG_STA); } else if (wins_slctd () == TOD && todo_hilt () != 0) { - todo_delete (&conf); + todo_delete (); wins_update (FLAG_TOD | FLAG_STA); } break; @@ -373,7 +372,7 @@ main (int argc, char **argv) case KEY_REPEAT_ITEM: if (wins_slctd () == APP && apoint_hilt () != 0) - recur_repeat_item (&conf); + recur_repeat_item (); inday = do_storage (0); wins_update (FLAG_CAL | FLAG_APP | FLAG_STA); break; @@ -394,7 +393,7 @@ main (int argc, char **argv) case KEY_PIPE_ITEM: if (wins_slctd () == APP && apoint_hilt () != 0) - day_pipe_item (&conf); + day_pipe_item (); else if (wins_slctd () == TOD && todo_hilt () != 0) todo_pipe_item (); wins_update (FLAG_ALL); @@ -439,13 +438,13 @@ main (int argc, char **argv) break; case KEY_GENERIC_SAVE: - io_save_cal (&conf, IO_SAVE_DISPLAY_BAR); + io_save_cal (IO_SAVE_DISPLAY_BAR); wins_update (FLAG_STA); break; case KEY_GENERIC_IMPORT: wins_erase_status_bar (); - io_import_data (IO_IMPORT_ICAL, &conf, NULL); + io_import_data (IO_IMPORT_ICAL, NULL); inday = do_storage (0); wins_update (FLAG_ALL); break; @@ -459,11 +458,11 @@ main (int argc, char **argv) { case 'I': case 'i': - io_export_data (IO_EXPORT_ICAL, &conf); + io_export_data (IO_EXPORT_ICAL); break; case 'P': case 'p': - io_export_data (IO_EXPORT_PCAL, &conf); + io_export_data (IO_EXPORT_PCAL); break; } wins_reset (); @@ -585,7 +584,7 @@ main (int argc, char **argv) case KEY_GENERIC_QUIT: if (conf.auto_save) - io_save_cal (&conf, IO_SAVE_DISPLAY_BAR); + io_save_cal (IO_SAVE_DISPLAY_BAR); if (conf.auto_gc) note_gc (); diff --git a/src/calcurse.h b/src/calcurse.h index adb2c1e..f7ad0dd 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -584,7 +584,7 @@ void apoint_hilt_increase (int); int apoint_hilt (void); struct apoint *apoint_new (char *, char *, long, long, char); void apoint_add (void); -void apoint_delete (struct conf *, unsigned *, unsigned *); +void apoint_delete (unsigned *, unsigned *); int apoint_cut (unsigned *, unsigned *); void apoint_paste (unsigned *, unsigned *, int); unsigned apoint_inday (struct apoint *, long); @@ -602,7 +602,7 @@ void apoint_update_panel (int); void apoint_paste_item (void); /* args.c */ -int parse_args (int, char **, struct conf *); +int parse_args (int, char **); /* calendar.c */ void calendar_view_next (void); @@ -631,7 +631,7 @@ char *calendar_get_pom (time_t); void custom_init_attr (void); void custom_apply_attr (WINDOW *, int); void custom_remove_attr (WINDOW *, int); -void custom_load_conf (struct conf *); +void custom_load_conf (void); void custom_config_bar (void); void custom_layout_config (void); void custom_sidebar_config (void); @@ -639,7 +639,7 @@ void custom_color_config (void); void custom_color_theme_name (char *); void custom_confwin_init (struct window *, char *); void custom_set_swsiz (struct scrollwin *); -void custom_general_config (struct conf *); +void custom_general_config (void); void custom_keys_config (void); /* day.c */ @@ -650,7 +650,7 @@ void day_write_pad (long, int, int, int); void day_popup_item (void); int day_check_if_item (struct date); unsigned day_chk_busy_slices (struct date, int, int *); -void day_edit_item (struct conf *); +void day_edit_item (void); int day_erase_item (long, int, enum eraseflg); int day_cut_item (long, int); int day_paste_item (long, int); @@ -658,7 +658,7 @@ struct day_item *day_get_item (int); int day_item_nb (long, int, int); void day_edit_note (char *); void day_view_note (char *); -void day_pipe_item (struct conf *); +void day_pipe_item (void); /* dmon.c */ void dmon_start (int); @@ -689,11 +689,11 @@ int updatestring (WINDOW *, char **, int, int); unsigned io_fprintln (const char *, const char *, ...); void io_init (char *, char *); void io_extract_data (char *, const char *, int); -unsigned io_save_conf (struct conf *); +unsigned io_save_conf (void); unsigned io_save_apts (void); unsigned io_save_todo (void); unsigned io_save_keys (void); -void io_save_cal (struct conf *, enum save_display); +void io_save_cal (enum save_display); void io_load_app (void); void io_load_todo (void); void io_load_keys (char *); @@ -702,14 +702,14 @@ unsigned io_file_exist (char *); void io_check_file (char *, int *); int io_check_data_files (void); void io_startup_screen (unsigned, int); -void io_export_data (enum export_type, struct conf *); +void io_export_data (enum export_type); void io_export_bar (void); -void io_import_data (enum import_type, struct conf *, char *); +void io_import_data (enum import_type, char *); struct io_file *io_log_init (void); void io_log_print (struct io_file *, int, char *); void io_log_display (struct io_file *, char *, char *); void io_log_free (struct io_file *); -void io_start_psave_thread (struct conf *); +void io_start_psave_thread (void); void io_stop_psave_thread (void); void io_set_lock (void); unsigned io_dump_pid (char *); @@ -838,7 +838,7 @@ void recur_event_erase (long, unsigned, unsigned, enum eraseflg); void recur_apoint_erase (long, unsigned, unsigned, enum eraseflg); -void recur_repeat_item (struct conf *); +void recur_repeat_item (void); void recur_exc_scan (llist_t *, FILE *); struct notify_app *recur_apoint_check_next (struct notify_app *, long, long); struct recur_apoint *recur_get_apoint (long, int); @@ -868,7 +868,7 @@ void todo_new_item (void); struct todo *todo_add (char *, int, char *); void todo_write (struct todo *, FILE *); void todo_flag (void); -void todo_delete (struct conf *); +void todo_delete (void); void todo_chg_priority (int); void todo_edit_item (void); void todo_update_panel (int); @@ -941,10 +941,11 @@ extern char path_notes[BUFSIZ]; extern char path_cpid[BUFSIZ]; extern char path_dpid[BUFSIZ]; extern char path_dmon_log[BUFSIZ]; +extern struct conf conf; extern struct pad apad; extern struct nbar nbar; extern struct dmon_conf dmon; -void vars_init (struct conf *); +void vars_init (void); /* wins.c */ extern struct window win[NBWINS]; diff --git a/src/custom.c b/src/custom.c index 5700640..38ad8bc 100644 --- a/src/custom.c +++ b/src/custom.c @@ -284,32 +284,32 @@ custom_remove_attr (WINDOW *win, int attr_num) /* Set a configuration variable. */ static int -custom_set_conf (struct conf *conf, enum conf_var var, char *val) +custom_set_conf (enum conf_var var, char *val) { unsigned tmp; switch (var) { case CUSTOM_CONF_AUTOSAVE: - return conf_parse_bool (&conf->auto_save, val); + return conf_parse_bool (&conf.auto_save, val); break; case CUSTOM_CONF_AUTOGC: - return conf_parse_bool (&conf->auto_gc, val); + return conf_parse_bool (&conf.auto_gc, val); break; case CUSTOM_CONF_PERIODICSAVE: - return conf_parse_unsigned (&conf->periodic_save, val); + return conf_parse_unsigned (&conf.periodic_save, val); break; case CUSTOM_CONF_CONFIRMQUIT: - return conf_parse_bool (&conf->confirm_quit, val); + return conf_parse_bool (&conf.confirm_quit, val); break; case CUSTOM_CONF_CONFIRMDELETE: - return conf_parse_bool (&conf->confirm_delete, val); + return conf_parse_bool (&conf.confirm_delete, val); break; case CUSTOM_CONF_SKIPSYSTEMDIALOGS: - return conf_parse_bool (&conf->skip_system_dialogs, val); + return conf_parse_bool (&conf.skip_system_dialogs, val); break; case CUSTOM_CONF_SKIPPROGRESSBAR: - return conf_parse_bool (&conf->skip_progress_bar, val); + return conf_parse_bool (&conf.skip_progress_bar, val); break; case CUSTOM_CONF_CALENDAR_DEFAULTVIEW: calendar_set_view (atoi (val)); @@ -350,12 +350,12 @@ custom_set_conf (struct conf *conf, enum conf_var var, char *val) break; case CUSTOM_CONF_OUTPUTDATEFMT: if (val[0] != '\0') - strncpy (conf->output_datefmt, val, strlen (val) + 1); + strncpy (conf.output_datefmt, val, strlen (val) + 1); break; case CUSTOM_CONF_INPUTDATEFMT: - return conf_parse_int (&conf->input_datefmt, val); - if (conf->input_datefmt <= 0 || conf->input_datefmt >= DATE_FORMATS) - conf->input_datefmt = 1; + return conf_parse_int (&conf.input_datefmt, val); + if (conf.input_datefmt <= 0 || conf.input_datefmt >= DATE_FORMATS) + conf.input_datefmt = 1; break; case CUSTOM_CONF_DMON_ENABLE: return conf_parse_bool (&dmon.enable, val); @@ -373,7 +373,7 @@ custom_set_conf (struct conf *conf, enum conf_var var, char *val) /* Load the user configuration. */ void -custom_load_conf (struct conf *conf) +custom_load_conf (void) { FILE *data_file; char *mesg_line1 = _("Failed to open config file"); @@ -436,7 +436,7 @@ custom_load_conf (struct conf *conf) val = e_conf; } - if (!val || !custom_set_conf (conf, var, val)) + if (!val || !custom_set_conf (var, val)) { EXIT (_("wrong configuration variable format for \"%s\""), name); /* NOTREACHED */ @@ -1017,7 +1017,7 @@ custom_color_theme_name (char *theme_name) /* Prints the general options. */ static int -print_general_options (WINDOW *win, struct conf *conf) +print_general_options (WINDOW *win) { enum { AUTO_SAVE, @@ -1050,13 +1050,13 @@ print_general_options (WINDOW *win, struct conf *conf) y = 0; mvwprintw (win, y, XPOS, "[1] %s ", opt[AUTO_SAVE]); - print_bool_option_incolor (win, conf->auto_save, y, + print_bool_option_incolor (win, conf.auto_save, y, XPOS + 4 + strlen (opt[AUTO_SAVE])); mvwprintw (win, y + 1, XPOS, _("(if set to YES, automatic save is done when quitting)")); y += YOFF; mvwprintw (win, y, XPOS, "[2] %s ", opt[AUTO_GC]); - print_bool_option_incolor (win, conf->auto_gc, y, + print_bool_option_incolor (win, conf.auto_gc, y, XPOS + 4 + strlen (opt[AUTO_GC])); mvwprintw (win, y + 1, XPOS, _("(run the garbage collector when quitting)")); @@ -1064,34 +1064,34 @@ print_general_options (WINDOW *win, struct conf *conf) mvwprintw (win, y, XPOS, "[3] %s ", opt[PERIODIC_SAVE]); custom_apply_attr (win, ATTR_HIGHEST); mvwprintw (win, y, XPOS + 4 + strlen (opt[PERIODIC_SAVE]), "%d", - conf->periodic_save); + conf.periodic_save); custom_remove_attr (win, ATTR_HIGHEST); mvwprintw (win, y + 1, XPOS, _("(if not null, automatically save data every 'periodic_save' " "minutes)")); y += YOFF; mvwprintw (win, y, XPOS, "[4] %s ", opt[CONFIRM_QUIT]); - print_bool_option_incolor (win, conf->confirm_quit, y, + print_bool_option_incolor (win, conf.confirm_quit, y, XPOS + 4 + strlen (opt[CONFIRM_QUIT])); mvwprintw (win, y + 1, XPOS, _("(if set to YES, confirmation is required before quitting)")); y += YOFF; mvwprintw (win, y, XPOS, "[5] %s ", opt[CONFIRM_DELETE]); - print_bool_option_incolor (win, conf->confirm_delete, y, + print_bool_option_incolor (win, conf.confirm_delete, y, XPOS + 4 + strlen (opt[CONFIRM_DELETE])); mvwprintw (win, y + 1, XPOS, _("(if set to YES, confirmation is required " "before deleting an event)")); y += YOFF; mvwprintw (win, y, XPOS, "[6] %s ", opt[SKIP_SYSTEM_DIAGS]); - print_bool_option_incolor (win, conf->skip_system_dialogs, y, + print_bool_option_incolor (win, conf.skip_system_dialogs, y, XPOS + 4 + strlen (opt[SKIP_SYSTEM_DIAGS])); mvwprintw (win, y + 1, XPOS, _("(if set to YES, messages about loaded " "and saved data will not be displayed)")); y += YOFF; mvwprintw (win, y, XPOS, "[7] %s ", opt[SKIP_PROGRESS_BAR]); - print_bool_option_incolor (win, conf->skip_progress_bar, y, + print_bool_option_incolor (win, conf.skip_progress_bar, y, XPOS + 4 + strlen (opt[SKIP_PROGRESS_BAR])); mvwprintw (win, y + 1, XPOS, _("(if set to YES, progress bar will not be displayed " @@ -1107,7 +1107,7 @@ print_general_options (WINDOW *win, struct conf *conf) mvwprintw (win, y, XPOS, "[9] %s ", opt[OUTPUT_DATE_FMT]); custom_apply_attr (win, ATTR_HIGHEST); mvwprintw (win, y, XPOS + 4 + strlen (opt[OUTPUT_DATE_FMT]), "%s", - conf->output_datefmt); + conf.output_datefmt); custom_remove_attr (win, ATTR_HIGHEST); mvwprintw (win, y + 1, XPOS, _("(Format of the date to be displayed in non-interactive mode)")); @@ -1115,7 +1115,7 @@ print_general_options (WINDOW *win, struct conf *conf) mvwprintw (win, y, XPOS, "[0] %s ", opt[INPUT_DATE_FMT]); custom_apply_attr (win, ATTR_HIGHEST); mvwprintw (win, y, XPOS + 4 + strlen (opt[INPUT_DATE_FMT]), "%d", - conf->input_datefmt); + conf.input_datefmt); custom_remove_attr (win, ATTR_HIGHEST); mvwprintw (win, y + 1, XPOS, _("(Format to be used when entering a date: ")); mvwprintw (win, y + 2, XPOS, @@ -1140,7 +1140,7 @@ custom_set_swsiz (struct scrollwin *sw) /* General configuration. */ void -custom_general_config (struct conf *conf) +custom_general_config (void) { struct scrollwin cwin; char *number_str = @@ -1163,7 +1163,7 @@ custom_general_config (struct conf *conf) wins_scrollwin_init (&cwin); wins_show (cwin.win.p, cwin.label); status_mesg (number_str, keys); - cwin.total_lines = print_general_options (cwin.pad.p, conf); + cwin.total_lines = print_general_options (cwin.pad.p); wins_scrollwin_display (&cwin); buf = mem_malloc (BUFSIZ); @@ -1180,10 +1180,10 @@ custom_general_config (struct conf *conf) wins_scrollwin_up (&cwin, 1); break; case '1': - conf->auto_save = !conf->auto_save; + conf.auto_save = !conf.auto_save; break; case '2': - conf->auto_gc = !conf->auto_gc; + conf.auto_gc = !conf.auto_gc; break; case '3': status_mesg (periodic_save_str, ""); @@ -1191,36 +1191,36 @@ custom_general_config (struct conf *conf) { int val = atoi (buf); if (val >= 0) - conf->periodic_save = val; - if (conf->periodic_save > 0) - io_start_psave_thread (conf); - else if (conf->periodic_save == 0) + conf.periodic_save = val; + if (conf.periodic_save > 0) + io_start_psave_thread (); + else if (conf.periodic_save == 0) io_stop_psave_thread (); } status_mesg (number_str, keys); break; case '4': - conf->confirm_quit = !conf->confirm_quit; + conf.confirm_quit = !conf.confirm_quit; break; case '5': - conf->confirm_delete = !conf->confirm_delete; + conf.confirm_delete = !conf.confirm_delete; break; case '6': - conf->skip_system_dialogs = !conf->skip_system_dialogs; + conf.skip_system_dialogs = !conf.skip_system_dialogs; break; case '7': - conf->skip_progress_bar = !conf->skip_progress_bar; + conf.skip_progress_bar = !conf.skip_progress_bar; break; case '8': calendar_change_first_day_of_week (); break; case '9': status_mesg (output_datefmt_str, ""); - strncpy (buf, conf->output_datefmt, - strlen (conf->output_datefmt) + 1); + strncpy (buf, conf.output_datefmt, + strlen (conf.output_datefmt) + 1); if (updatestring (win[STA].p, &buf, 0, 1) == 0) { - strncpy (conf->output_datefmt, buf, strlen (buf) + 1); + strncpy (conf.output_datefmt, buf, strlen (buf) + 1); } status_mesg (number_str, keys); break; @@ -1230,7 +1230,7 @@ custom_general_config (struct conf *conf) { int val = atoi (buf); if (val > 0 && val <= DATE_FORMATS) - conf->input_datefmt = val; + conf.input_datefmt = val; } status_mesg (number_str, keys); break; @@ -1257,7 +1257,7 @@ custom_general_config (struct conf *conf) } status_mesg (number_str, keys); - cwin.total_lines = print_general_options (cwin.pad.p, conf); + cwin.total_lines = print_general_options (cwin.pad.p); wins_scrollwin_display (&cwin); } mem_free (buf); diff --git a/src/day.c b/src/day.c index 2464653..73c8ada 100644 --- a/src/day.c +++ b/src/day.c @@ -688,7 +688,7 @@ update_desc (char **desc) } static void -update_rept (struct rpt **rpt, const long start, struct conf *conf) +update_rept (struct rpt **rpt, const long start) { const int SINGLECHAR = 2; int ch, newfreq, date_entered; @@ -749,10 +749,10 @@ update_rept (struct rpt **rpt, const long start, struct conf *conf) do { snprintf (outstr, BUFSIZ, "Enter the new ending date: [%s] or '0'", - DATEFMT_DESC (conf->input_datefmt)); + DATEFMT_DESC (conf.input_datefmt)); status_mesg (_(outstr), ""); timstr = - date_sec2date_str ((*rpt)->until, DATEFMT (conf->input_datefmt)); + date_sec2date_str ((*rpt)->until, DATEFMT (conf.input_datefmt)); if (updatestring (win[STA].p, &timstr, 0, 1) != GETSTRING_VALID) { mem_free (timstr); @@ -770,8 +770,8 @@ update_rept (struct rpt **rpt, const long start, struct conf *conf) struct date new_date; int newmonth, newday, newyear; - if (parse_date (timstr, conf->input_datefmt, - &newyear, &newmonth, &newday, calendar_get_slctd_day ())) + if (parse_date (timstr, conf.input_datefmt, &newyear, &newmonth, + &newday, calendar_get_slctd_day ())) { t = start; lt = localtime (&t); @@ -791,7 +791,7 @@ update_rept (struct rpt **rpt, const long start, struct conf *conf) else { snprintf (outstr, BUFSIZ, msg_fmts, - DATEFMT_DESC (conf->input_datefmt)); + DATEFMT_DESC (conf.input_datefmt)); status_mesg (msg_wrong_date, _(outstr)); wgetch (win[STA].p); date_entered = 0; @@ -808,7 +808,7 @@ update_rept (struct rpt **rpt, const long start, struct conf *conf) /* Edit an already existing item. */ void -day_edit_item (struct conf *conf) +day_edit_item (void) { #define STRT '1' #define END '2' @@ -842,7 +842,7 @@ day_edit_item (struct conf *conf) update_desc (&re->mesg); break; case '2': - update_rept (&re->rpt, re->day, conf); + update_rept (&re->rpt, re->day); break; default: return; @@ -875,7 +875,7 @@ day_edit_item (struct conf *conf) break; case REPT: need_check_notify = 1; - update_rept (&ra->rpt, ra->start, conf); + update_rept (&ra->rpt, ra->start); break; case KEY_GENERIC_CANCEL: return; @@ -1134,7 +1134,7 @@ day_view_note (char *pager) /* Pipe an appointment or event to an external program. */ void -day_pipe_item (struct conf *conf) +day_pipe_item (void) { char cmd[BUFSIZ] = ""; int pout; diff --git a/src/dmon.c b/src/dmon.c index be1fda7..9dc893e 100644 --- a/src/dmon.c +++ b/src/dmon.c @@ -154,8 +154,6 @@ daemonize (int status) void dmon_start (int parent_exit_status) { - struct conf conf; - if (!daemonize (parent_exit_status)) DMON_ABRT (_("Cannot daemonize, aborting\n")); @@ -165,7 +163,7 @@ dmon_start (int parent_exit_status) if (!io_file_exist (path_conf)) DMON_ABRT (_("Could not access \"%s\": %s\n"), path_conf, strerror (errno)); - custom_load_conf (&conf); + custom_load_conf (); if (!io_file_exist (path_apts)) DMON_ABRT (_("Could not access \"%s\": %s\n"), diff --git a/src/io.c b/src/io.c index 7b54632..2bd0ce4 100644 --- a/src/io.c +++ b/src/io.c @@ -834,7 +834,7 @@ static pthread_mutex_t io_save_mutex = PTHREAD_MUTEX_INITIALIZER; /* Save the user configuration. */ unsigned -io_save_conf (struct conf *conf) +io_save_conf (void) { char *config_txt = "#\n" @@ -860,37 +860,37 @@ io_save_conf (struct conf *conf) fputs ("# If this option is set to yes, " "automatic save is done when quitting\n", fp); fputs ("auto_save=", fp); - fprintf (fp, "%s\n", (conf->auto_save) ? "yes" : "no"); + fprintf (fp, "%s\n", (conf.auto_save) ? "yes" : "no"); fputs ("\n# If this option is set to yes, " "the GC is run automatically when quitting\n", fp); fputs ("auto_gc=", fp); - fprintf (fp, "%s\n", (conf->auto_gc) ? "yes" : "no"); + fprintf (fp, "%s\n", (conf.auto_gc) ? "yes" : "no"); fputs ("\n# If not null, perform automatic saves every " "'periodic_save' minutes\n", fp); fputs ("periodic_save=", fp); - fprintf (fp, "%d\n", conf->periodic_save); + fprintf (fp, "%d\n", conf.periodic_save); fputs ("\n# If this option is set to yes, " "confirmation is required before quitting\n", fp); fputs ("confirm_quit=", fp); - fprintf (fp, "%s\n", (conf->confirm_quit) ? "yes" : "no"); + fprintf (fp, "%s\n", (conf.confirm_quit) ? "yes" : "no"); fputs ("\n# If this option is set to yes, " "confirmation is required before deleting an event\n", fp); fputs ("confirm_delete=", fp); - fprintf (fp, "%s\n", (conf->confirm_delete) ? "yes" : "no"); + fprintf (fp, "%s\n", (conf.confirm_delete) ? "yes" : "no"); fputs ("\n# If this option is set to yes, messages about loaded and " "saved data will not be displayed\n", fp); fputs ("skip_system_dialogs=", fp); - fprintf (fp, "%s\n", (conf->skip_system_dialogs) ? "yes" : "no"); + fprintf (fp, "%s\n", (conf.skip_system_dialogs) ? "yes" : "no"); fputs ("\n# If this option is set to yes, progress bar appearing " "when saving data will not be displayed\n", fp); fputs ("skip_progress_bar=", fp); - fprintf (fp, "%s\n", (conf->skip_progress_bar) ? "yes" : "no"); + fprintf (fp, "%s\n", (conf.skip_progress_bar) ? "yes" : "no"); fputs ("\n# Default calendar view (0)monthly (1)weekly:\n", fp); fputs ("calendar_default_view=", fp); @@ -946,13 +946,13 @@ io_save_conf (struct conf *conf) fputs ("\n# Format of the date to be displayed " "in non-interactive mode :\n", fp); fputs ("output_datefmt=", fp); - fprintf (fp, "%s\n", conf->output_datefmt); + fprintf (fp, "%s\n", conf.output_datefmt); fputs ("\n# Format to be used when entering a date " "(1)mm/dd/yyyy (2)dd/mm/yyyy (3)yyyy/mm/dd) " "(4)yyyy-mm-dd:\n", fp); fputs ("input_datefmt=", fp); - fprintf (fp, "%d\n", conf->input_datefmt); + fprintf (fp, "%d\n", conf.input_datefmt); if (ui_mode == UI_CURSES) pthread_mutex_unlock (&nbar.mutex); @@ -1046,7 +1046,7 @@ io_save_keys (void) /* Save the calendar data */ void -io_save_cal (struct conf *conf, enum save_display display) +io_save_cal (enum save_display display) { char *access_pb = _("Problems accessing data file ..."); char *save_success = _("The data files were successfully saved"); @@ -1057,14 +1057,14 @@ io_save_cal (struct conf *conf, enum save_display display) show_bar = 0; if (ui_mode == UI_CURSES && display == IO_SAVE_DISPLAY_BAR - && !conf->skip_progress_bar) + && !conf.skip_progress_bar) show_bar = 1; else if (ui_mode == UI_CURSES && display == IO_SAVE_DISPLAY_MARK) display_mark (); if (show_bar) progress_bar (PROGRESS_BAR_SAVE, PROGRESS_BAR_CONF); - if (!io_save_conf (conf)) + if (!io_save_conf ()) ERROR_MSG ("%s", access_pb); if (show_bar) @@ -1083,7 +1083,7 @@ io_save_cal (struct conf *conf, enum save_display display) ERROR_MSG ("%s", access_pb); /* Print a message telling data were saved */ - if (ui_mode == UI_CURSES && !conf->skip_system_dialogs + if (ui_mode == UI_CURSES && !conf.skip_system_dialogs && display != IO_SAVE_DISPLAY_MARK) { status_mesg (save_success, enter); @@ -1620,7 +1620,7 @@ io_startup_screen (unsigned skip_dialogs, int no_data_file) /* Export calcurse data. */ void -io_export_data (enum export_type type, struct conf *conf) +io_export_data (enum export_type type) { FILE *stream; char *success = _("The data were successfully exported"); @@ -1648,17 +1648,17 @@ io_export_data (enum export_type type, struct conf *conf) cb_export_header[type] (stream); - if (!conf->skip_progress_bar && ui_mode == UI_CURSES) + if (!conf.skip_progress_bar && ui_mode == UI_CURSES) progress_bar (PROGRESS_BAR_EXPORT, PROGRESS_BAR_EXPORT_EVENTS); cb_export_recur_events[type] (stream); cb_export_events[type] (stream); - if (!conf->skip_progress_bar && ui_mode == UI_CURSES) + if (!conf.skip_progress_bar && ui_mode == UI_CURSES) progress_bar (PROGRESS_BAR_EXPORT, PROGRESS_BAR_EXPORT_APOINTS); cb_export_recur_apoints[type] (stream); cb_export_apoints[type] (stream); - if (!conf->skip_progress_bar && ui_mode == UI_CURSES) + if (!conf.skip_progress_bar && ui_mode == UI_CURSES) progress_bar (PROGRESS_BAR_EXPORT, PROGRESS_BAR_EXPORT_TODO); cb_export_todo[type] (stream); @@ -1667,7 +1667,7 @@ io_export_data (enum export_type type, struct conf *conf) if (stream != stdout) file_close (stream, __FILE_POS__); - if (!conf->skip_system_dialogs && ui_mode == UI_CURSES) + if (!conf.skip_system_dialogs && ui_mode == UI_CURSES) { status_mesg (success, enter); wgetch (win[STA].p); @@ -2692,7 +2692,7 @@ get_import_stream (enum export_type type) * and is cleared at the end. */ void -io_import_data (enum import_type type, struct conf *conf, char *stream_name) +io_import_data (enum import_type type, char *stream_name) { const struct string vevent = STRING_BUILD ("BEGIN:VEVENT"); const struct string vtodo = STRING_BUILD ("BEGIN:VTODO"); @@ -2771,7 +2771,7 @@ io_import_data (enum import_type type, struct conf *conf, char *stream_name) /* Update the number of todo items. */ todo_set_nb (todo_nb () + stats.todos); - if (ui_mode == UI_CURSES && !conf->skip_system_dialogs) + if (ui_mode == UI_CURSES && !conf.skip_system_dialogs) { char read[BUFSIZ], stat[BUFSIZ]; @@ -2797,7 +2797,7 @@ io_import_data (enum import_type type, struct conf *conf, char *stream_name) { char *view_log = _("Some items could not be imported, see log file ?"); - io_log_display (log, view_log, conf->pager); + io_log_display (log, view_log, conf.pager); } io_log_free (log); } @@ -2888,25 +2888,23 @@ static pthread_t io_t_psave; static void * io_psave_thread (void *arg) { - struct conf *config; int delay; - config = (struct conf *)arg; - delay = config->periodic_save; + delay = conf.periodic_save; EXIT_IF (delay < 0, _("Invalid delay")); for (;;) { sleep (delay * MININSEC); - io_save_cal (config, IO_SAVE_DISPLAY_MARK); + io_save_cal (IO_SAVE_DISPLAY_MARK); } } /* Launch the thread which handles periodic saves. */ void -io_start_psave_thread (struct conf *conf) +io_start_psave_thread (void) { - pthread_create (&io_t_psave, NULL, io_psave_thread, (void *)conf); + pthread_create (&io_t_psave, NULL, io_psave_thread, NULL); } /* Stop periodic data saves. */ diff --git a/src/recur.c b/src/recur.c index f8f04e0..b373b11 100644 --- a/src/recur.c +++ b/src/recur.c @@ -860,7 +860,7 @@ recur_apoint_erase (long start, unsigned num, unsigned delete_whole, * and then delete the selected item to recreate it as a recurrent one */ void -recur_repeat_item (struct conf *conf) +recur_repeat_item (void) { struct tm *lt; time_t t; @@ -935,7 +935,7 @@ recur_repeat_item (struct conf *conf) while (!date_entered) { snprintf (outstr, BUFSIZ, mesg_until_1, - DATEFMT_DESC (conf->input_datefmt)); + DATEFMT_DESC (conf.input_datefmt)); status_mesg (_(outstr), ""); if (getstring (win[STA].p, user_input, BUFSIZ, 0, 1) == GETSTRING_VALID) { @@ -946,7 +946,7 @@ recur_repeat_item (struct conf *conf) } else { - if (parse_date (user_input, conf->input_datefmt, + if (parse_date (user_input, conf.input_datefmt, &year, &month, &day, calendar_get_slctd_day ())) { t = p->start; @@ -969,7 +969,7 @@ recur_repeat_item (struct conf *conf) else { snprintf (outstr, BUFSIZ, mesg_wrong_2, - DATEFMT_DESC (conf->input_datefmt)); + DATEFMT_DESC (conf.input_datefmt)); status_mesg (mesg_wrong_1, _(outstr)); wgetch (win[STA].p); date_entered = 0; diff --git a/src/todo.c b/src/todo.c index b89d595..4418710 100644 --- a/src/todo.c +++ b/src/todo.c @@ -240,7 +240,7 @@ todo_flag (void) /* Delete an item from the ToDo list. */ void -todo_delete (struct conf *conf) +todo_delete (void) { char *choices = "[y/n] "; char *del_todo_str = _("Do you really want to delete this task ?"); @@ -251,7 +251,7 @@ todo_delete (struct conf *conf) unsigned go_for_todo_del = 0; int answer, has_note; - if (conf->confirm_delete) + if (conf.confirm_delete) { status_mesg (del_todo_str, choices); answer = wgetch (win[STA].p); diff --git a/src/vars.c b/src/vars.c index 5155683..10c87a0 100644 --- a/src/vars.c +++ b/src/vars.c @@ -102,6 +102,9 @@ char path_cpid[] = ""; char path_dpid[] = ""; char path_dmon_log[] = ""; +/* Variable to store global configuration. */ +struct conf conf; + /* Variable to handle pads. */ struct pad apad; @@ -115,20 +118,20 @@ struct dmon_conf dmon; * Variables init */ void -vars_init (struct conf *conf) +vars_init (void) { char *ed, *pg; /* Variables for user configuration */ - conf->confirm_quit = 1; - conf->confirm_delete = 1; - conf->auto_save = 1; - conf->auto_gc = 0; - conf->periodic_save = 0; - conf->skip_system_dialogs = 0; - conf->skip_progress_bar = 0; - strncpy (conf->output_datefmt, "%D", 3); - conf->input_datefmt = 1; + conf.confirm_quit = 1; + conf.confirm_delete = 1; + conf.auto_save = 1; + conf.auto_gc = 0; + conf.periodic_save = 0; + conf.skip_system_dialogs = 0; + conf.skip_progress_bar = 0; + strncpy (conf.output_datefmt, "%D", 3); + conf.input_datefmt = 1; /* Default external editor and pager */ ed = getenv ("VISUAL"); @@ -136,12 +139,12 @@ vars_init (struct conf *conf) ed = getenv ("EDITOR"); if (ed == NULL || ed[0] == '\0') ed = DEFAULT_EDITOR; - conf->editor = ed; + conf.editor = ed; pg = getenv ("PAGER"); if (pg == NULL || pg[0] == '\0') pg = DEFAULT_PAGER; - conf->pager = pg; + conf.pager = pg; wins_set_layout (1); -- cgit v1.2.3-70-g09d2