aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorgan Seltzer <MorganSeltzer000@gmail.com>2021-06-07 18:11:43 -0400
committerLukas Fleischer <lfleischer@calcurse.org>2021-08-07 13:42:28 -0400
commitee8ebebf9210abaa7bb6e9accc3ceed3909c2f12 (patch)
tree63e50d382048cfd424f1997c9d573225f70fb21d
parente3fc73e0c76addc0893ad3ceeba7ef8442133a51 (diff)
downloadcalcurse-ee8ebebf9210abaa7bb6e9accc3ceed3909c2f12.tar.gz
calcurse-ee8ebebf9210abaa7bb6e9accc3ceed3909c2f12.zip
First day of week can now be any day
Previously only Sunday and Monday were allowed as the first day of the week, and this was internally treated as a binary variable. This patch allows for users to change the first day of the week to any day. Addresses GitHub feature request #321. Signed-off-by: Morgan Seltzer <MorganSeltzer000@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
-rw-r--r--src/config.c18
-rw-r--r--src/custom.c4
-rw-r--r--src/ui-calendar.c4
3 files changed, 16 insertions, 10 deletions
diff --git a/src/config.c b/src/config.c
index 2df2559..3627cb8 100644
--- a/src/config.c
+++ b/src/config.c
@@ -36,6 +36,8 @@
#include <ctype.h>
#include <unistd.h>
+#include <string.h>
+#include <strings.h>
#include "calcurse.h"
@@ -261,14 +263,16 @@ static int config_parse_default_panel(void *dummy, const char *val)
static int config_parse_first_day_of_week(void *dummy, const char *val)
{
- if (!strcmp(val, "monday"))
- ui_calendar_set_first_day_of_week(MONDAY);
- else if (!strcmp(val, "sunday"))
- ui_calendar_set_first_day_of_week(SUNDAY);
- else
- return 0;
+ int i;
- return 1;
+ for (i = 0; i < WEEKINDAYS; i++) {
+ if(!strcasecmp(val, get_wday_default_string(i))) {
+ ui_calendar_set_first_day_of_week(i);
+ return 1;
+ }
+ }
+
+ return 0;
}
static int config_parse_color_theme(void *dummy, const char *val)
diff --git a/src/custom.c b/src/custom.c
index 5f66194..744f9f9 100644
--- a/src/custom.c
+++ b/src/custom.c
@@ -38,6 +38,7 @@
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
+#include <langinfo.h>
#include "calcurse.h"
@@ -702,8 +703,7 @@ static void print_general_option(int i, WINDOW *win, int y, int hilt, void *cb_d
case FIRST_DAY_OF_WEEK:
custom_apply_attr(win, ATTR_HIGHEST);
mvwaddstr(win, y, XPOS + strlen(opt[FIRST_DAY_OF_WEEK]),
- ui_calendar_get_wday_start()? _("Monday") :
- _("Sunday"));
+ nl_langinfo(DAY_1 + ui_calendar_get_wday_start()));
custom_remove_attr(win, ATTR_HIGHEST);
mvwaddstr(win, y + 1, XPOS,
_("(specifies the first day of week in the calendar view)"));
diff --git a/src/ui-calendar.c b/src/ui-calendar.c
index e4d5289..f69ea4c 100644
--- a/src/ui-calendar.c
+++ b/src/ui-calendar.c
@@ -159,7 +159,9 @@ void ui_calendar_set_first_day_of_week(enum wday first_day)
/* Swap first day of week in calendar. */
void ui_calendar_change_first_day_of_week(void)
{
- wday_start = !wday_start;
+ wday_start++;
+ if(wday_start >= WEEKINDAYS)
+ wday_start = 0;
}
/* Return 1 if week begins on monday, 0 otherwise. */