From 6c11b8985cbd8fbb5525a4c4d2338603b81729c5 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 17 May 2012 21:59:49 +0200 Subject: Fix data type of "general.firstdayofweek" This option wasn't converted to a proper data type when it was renamed from "week_begins_on_monday" to "general.firstdayofweek". Convert the boolean option into an enumeration type that can take the values "monday" and "sunday". Also, update the documentation, add a conversion rule to the upgrade script and convert the configuration file used in the test suite. Signed-off-by: Lukas Fleischer --- doc/manual.txt | 9 ++++----- scripts/calcurse-upgrade | 1 + src/config.c | 22 ++++++++++++---------- src/custom.c | 13 +++++++------ test/data/conf | 2 +- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/doc/manual.txt b/doc/manual.txt index a644296..50ee0f9 100644 --- a/doc/manual.txt +++ b/doc/manual.txt @@ -756,11 +756,10 @@ These options control `calcurse` general behavior, as described below: If set to `0`, the monthly calendar view will be displayed by default otherwise it is the weekly view that will be displayed. -`general.firstdayofweek` (default: *yes*):: - One can choose between Monday and Sunday as the first day of the week. If the - option `general.firstdayofweek` is set to *yes*, Monday will be first in the - calendar view. Else if the option is set to *no*, then Sunday will be the - first day of the week. +`general.firstdayofweek` (default: *monday*):: + One can choose between Monday and Sunday as the first day of the week. If + `general.firstdayofweek` is set to *monday*, Monday will be first in the + calendar view. Otherwise, Sunday will be the first day of the week. `format.outputdate` (default: *%D*):: This option indicates the format to be used when displaying dates in diff --git a/scripts/calcurse-upgrade b/scripts/calcurse-upgrade index 0d9b196..2fa7d4f 100644 --- a/scripts/calcurse-upgrade +++ b/scripts/calcurse-upgrade @@ -68,6 +68,7 @@ if grep -q -e '^auto_save=' -e '^auto_gc=' -e '^periodic_save=' \ BEGIN { FS=OFS="=" } $1 == "general.systemdialogs" || $1 == "general.progressbar" \ { $2 = ($2 == "yes") ? "no" : "yes" } + $1 == "general.firstdayofweek" { $2 = ($2 == "yes") ? "monday" : "sunday" } { print } ' < "$CONFFILE" > "$tmpfile" || exit 1 mv "$tmpfile" "$CONFFILE" || exit 1 diff --git a/src/config.c b/src/config.c index 88d5acc..98e622a 100644 --- a/src/config.c +++ b/src/config.c @@ -204,16 +204,14 @@ config_parse_calendar_view (void *dummy, const char *val) static int config_parse_first_day_of_week (void *dummy, const char *val) { - unsigned tmp; - if (config_parse_bool (&tmp, val)) { - if (tmp) - calendar_set_first_day_of_week (MONDAY); - else - calendar_set_first_day_of_week (SUNDAY); - return 1; - } + if (!strcmp (val, "monday")) + calendar_set_first_day_of_week (MONDAY); + else if (!strcmp (val, "sunday")) + calendar_set_first_day_of_week (SUNDAY); else return 0; + + return 1; } static int @@ -381,8 +379,12 @@ config_serialize_calendar_view (char *buf, void *dummy) static int config_serialize_first_day_of_week (char *buf, void *dummy) { - unsigned tmp = calendar_week_begins_on_monday (); - return config_serialize_bool (buf, &tmp); + if (calendar_week_begins_on_monday ()) + strcpy(buf, "monday"); + else + strcpy(buf, "sunday"); + + return 1; } static int diff --git a/src/custom.c b/src/custom.c index dab05d0..017136d 100644 --- a/src/custom.c +++ b/src/custom.c @@ -630,7 +630,7 @@ print_general_options (WINDOW *win) CONFIRM_DELETE, SYSTEM_DIAGS, PROGRESS_BAR, - WEEK_BEGINS_MONDAY, + FIRST_DAY_OF_WEEK, OUTPUT_DATE_FMT, INPUT_DATE_FMT, NB_OPTIONS @@ -700,12 +700,13 @@ print_general_options (WINDOW *win) _("(if set to YES, progress bar will be displayed " "when saving data)")); y += YOFF; - mvwprintw (win, y, XPOS, "[8] %s ", opt[WEEK_BEGINS_MONDAY]); - print_bool_option_incolor (win, calendar_week_begins_on_monday (), y, - XPOS + 4 + strlen (opt[WEEK_BEGINS_MONDAY])); + mvwprintw (win, y, XPOS, "[8] %s ", opt[FIRST_DAY_OF_WEEK]); + custom_apply_attr (win, ATTR_HIGHEST); + mvwprintw (win, y, XPOS + 4 + strlen (opt[FIRST_DAY_OF_WEEK]), "%s", + calendar_week_begins_on_monday () ? _("Monday") : _("Sunday")); + custom_remove_attr (win, ATTR_HIGHEST); mvwprintw (win, y + 1, XPOS, - _("(if set to YES, monday is the first day of the week, " - "else it is sunday)")); + _("(specifies the first day of week in the calendar view)")); y += YOFF; mvwprintw (win, y, XPOS, "[9] %s ", opt[OUTPUT_DATE_FMT]); custom_apply_attr (win, ATTR_HIGHEST); diff --git a/test/data/conf b/test/data/conf index e30e6b8..de5efd0 100644 --- a/test/data/conf +++ b/test/data/conf @@ -33,7 +33,7 @@ general.progressbar=no appearance.calendarview=0 # If this option is set to yes, monday is the first day of the week, else it is sunday -general.firstdayofweek=yes +general.firstdayofweek=monday # This is the color theme used for menus : appearance.theme=red on default -- cgit v1.2.3