diff options
Diffstat (limited to 'src/custom.c')
-rwxr-xr-x | src/custom.c | 61 |
1 files changed, 58 insertions, 3 deletions
diff --git a/src/custom.c b/src/custom.c index 2f17391..ce77cde 100755 --- a/src/custom.c +++ b/src/custom.c @@ -1,8 +1,8 @@ -/* $calcurse: custom.c,v 1.18 2008/02/16 13:14:04 culot Exp $ */ +/* $calcurse: custom.c,v 1.19 2008/04/09 20:38:29 culot Exp $ */ /* * Calcurse - text-based organizer - * Copyright (c) 2004-2007 Frederic Culot + * Copyright (c) 2004-2008 Frederic Culot * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -285,7 +285,18 @@ custom_load_conf(conf_t *conf, int background) strncpy(nbar->cmd, e_conf, strlen(e_conf) + 1); var = 0; break; - default: + case CUSTOM_CONF_OUTPUTDATEFMT: + if (e_conf[0] != '\0') + strncpy(conf->output_datefmt, e_conf, strlen(e_conf) + 1); + var = 0; + break; + case CUSTOM_CONF_INPUTDATEFMT: + conf->input_datefmt = atoi(e_conf); + if (conf->input_datefmt < 1 || conf->input_datefmt > 3) + conf->input_datefmt = 1; + var = 0; + break; + default: fputs(_("FATAL ERROR in custom_load_conf: " "configuration variable unknown.\n"), stderr); exit(EXIT_FAILURE); @@ -318,6 +329,10 @@ custom_load_conf(conf_t *conf, int background) var = CUSTOM_CONF_NOTIFYBARWARNING; else if (strncmp(e_conf, "notify-bar_command=", 19) ==0) var = CUSTOM_CONF_NOTIFYBARCOMMAND; + else if (strncmp(e_conf, "output_datefmt=", 12) ==0) + var = CUSTOM_CONF_OUTPUTDATEFMT; + else if (strncmp(e_conf, "input_datefmt=", 12) ==0) + var = CUSTOM_CONF_INPUTDATEFMT; } fclose(data_file); pthread_mutex_unlock(&nbar->mutex); @@ -675,6 +690,8 @@ custom_print_general_options(WINDOW *optwin, conf_t *conf) char *option4 = _("skip_system_dialogs = "); char *option5 = _("skip_progress_bar = "); char *option6 = _("week_begins_on_monday = "); + char *option7 = _("output_datefmt = "); + char *option8 = _("input_datefmt = "); x_pos = 3; y_pos = 3; @@ -715,6 +732,22 @@ custom_print_general_options(WINDOW *optwin, conf_t *conf) mvwprintw(optwin, y_pos + 16, x_pos, _("(if set to YES, monday is the first day of the week, else it is sunday)")); + mvwprintw(optwin, y_pos + 18, x_pos, "[7] %s ", option7); + custom_apply_attr(optwin, ATTR_HIGHEST); + mvwprintw(optwin, y_pos + 18, x_pos + 4 + strlen(option7), "%s", + conf->output_datefmt); + custom_remove_attr(optwin, ATTR_HIGHEST); + mvwprintw(optwin, y_pos + 19, x_pos, + _("(Format of the date to be displayed in non-interactive mode)")); + + mvwprintw(optwin, y_pos + 21, x_pos, "[8] %s ", option8); + custom_apply_attr(optwin, ATTR_HIGHEST); + mvwprintw(optwin, y_pos + 21, x_pos + 4 + strlen(option7), "%d", + conf->input_datefmt); + custom_remove_attr(optwin, ATTR_HIGHEST); + mvwprintw(optwin, y_pos + 22, x_pos, + _("(Format to be used when entering a date: 1-mm/dd/yyyy, 2-dd/mm/yyyy, 3-yyyy/mm/dd)")); + wmove(win[STA].p, 1, 0); wnoutrefresh(optwin); doupdate(); @@ -726,8 +759,13 @@ custom_general_config(conf_t *conf) { window_t conf_win; char *number_str = _("Enter an option number to change its value [Q to quit] "); + char *output_datefmt_str = + _("Enter the date format (see 'man 3 strftime' for possible formats) "); + char *input_datefmt_str = + _("Enter the date format (1-mm/dd/yyyy, 2-dd/mm/yyyy, 3-yyyy/mm/dd) "); int ch; char label[BUFSIZ]; + char *buf = (char *) malloc(BUFSIZ); clear(); snprintf(label, BUFSIZ, _("CalCurse %s | general options"), VERSION); @@ -772,9 +810,26 @@ custom_general_config(conf_t *conf) case '6': calendar_change_first_day_of_week(); break; + case '7': + status_mesg(output_datefmt_str, ""); + 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); + } + status_mesg(number_str, ""); + break; + case '8': + status_mesg(input_datefmt_str, ""); + if (updatestring(win[STA].p, &buf, 0, 1) == 0) { + int val = atoi(buf); + if (val >= 1 && val <= 3) conf->input_datefmt = val; + } + status_mesg(number_str, ""); + break; } status_mesg(number_str, ""); custom_print_general_options(conf_win.p, conf); } + free(buf); delwin(conf_win.p); } |