aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2012-05-17 21:59:49 +0200
committerLukas Fleischer <calcurse@cryptocrack.de>2012-05-17 22:08:00 +0200
commit6c11b8985cbd8fbb5525a4c4d2338603b81729c5 (patch)
tree197335b82e9039ba98b2438e48c3d477aa198bc5
parentdec97c7c81add925511153a06639922974147018 (diff)
downloadcalcurse-6c11b8985cbd8fbb5525a4c4d2338603b81729c5.tar.gz
calcurse-6c11b8985cbd8fbb5525a4c4d2338603b81729c5.zip
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 <calcurse@cryptocrack.de>
-rw-r--r--doc/manual.txt9
-rw-r--r--scripts/calcurse-upgrade1
-rw-r--r--src/config.c22
-rw-r--r--src/custom.c13
-rw-r--r--test/data/conf2
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