aboutsummaryrefslogtreecommitdiff
path: root/deskutils/elementary-calendar
diff options
context:
space:
mode:
authorNeel Chauhan <nc@FreeBSD.org>2021-01-18 17:07:46 +0000
committerNeel Chauhan <nc@FreeBSD.org>2021-01-18 17:07:46 +0000
commit2de9912de97bf33682e20bd43161288226998dfe (patch)
tree5b786361c9312761dd078b0bfcb2424b39caaa64 /deskutils/elementary-calendar
parent041dd86a7017e130ff73d05e79e042528c4dab6f (diff)
downloadports-2de9912de97bf33682e20bd43161288226998dfe.tar.gz
ports-2de9912de97bf33682e20bd43161288226998dfe.zip
deskutils/elementary-calendar: Fix Segmentation fault.
PR: 252741 Submitted by: 0mp Reviewed by: 0mp (mentor) Approved by: 0mp (mentor) MFH: 2021Q1 Differential Revision: https://reviews.freebsd.org/D28216
Notes
Notes: svn path=/head/; revision=561948
Diffstat (limited to 'deskutils/elementary-calendar')
-rw-r--r--deskutils/elementary-calendar/Makefile1
-rw-r--r--deskutils/elementary-calendar/files/patch-core_Services_Calendar_EventStore.vala47
-rw-r--r--deskutils/elementary-calendar/files/patch-src_MainWindow.vala14
3 files changed, 48 insertions, 14 deletions
diff --git a/deskutils/elementary-calendar/Makefile b/deskutils/elementary-calendar/Makefile
index 336963adbcf0..dd6cf14dafba 100644
--- a/deskutils/elementary-calendar/Makefile
+++ b/deskutils/elementary-calendar/Makefile
@@ -2,6 +2,7 @@
PORTNAME= elementary-calendar
DISTVERSION= 5.1.1
+PORTREVISION= 1
CATEGORIES= deskutils
MAINTAINER= nc@FreeBSD.org
diff --git a/deskutils/elementary-calendar/files/patch-core_Services_Calendar_EventStore.vala b/deskutils/elementary-calendar/files/patch-core_Services_Calendar_EventStore.vala
index fc0a62d29b48..532c4445ea00 100644
--- a/deskutils/elementary-calendar/files/patch-core_Services_Calendar_EventStore.vala
+++ b/deskutils/elementary-calendar/files/patch-core_Services_Calendar_EventStore.vala
@@ -1,20 +1,39 @@
--- core/Services/Calendar/EventStore.vala.orig 2020-10-08 20:26:30 UTC
+++ core/Services/Calendar/EventStore.vala
-@@ -303,7 +303,7 @@ public class Calendar.EventStore : Object {
- // number we want, so we convert the pointer address to a uint to get
- // the data. Since the pointer address is actually data, using it as a
- // pointer will segfault.
+@@ -298,19 +298,10 @@ public class Calendar.EventStore : Object {
+ */
+ private GLib.DateWeekday get_week_start () {
+ // Set the "baseline" for start of week: Sunday or Monday?
+- // HACK Dealing with NLTime is hacky and potentially prone to breaking.
+- // This to_string call produces a string pointer whose address is the
+- // number we want, so we convert the pointer address to a uint to get
+- // the data. Since the pointer address is actually data, using it as a
+- // pointer will segfault.
- uint week_day1 = (uint) Posix.NLTime.WEEK_1STDAY.to_string ();
-+ uint week_day1 = (uint) Posix.NLItem.DAY_1.to_string ();
- var week_1stday = 0; // Default to 0 if unrecognized data
- if (week_day1 == 19971130) { // Sunday
+- var week_1stday = 0; // Default to 0 if unrecognized data
+- if (week_day1 == 19971130) { // Sunday
++ string locale = GLib.Intl.setlocale(ALL, null);
++ var week_1stday = 1; // Default to Monday
++ if (locale.contains("CA") || locale.contains("MX") || locale.contains("US")) {
week_1stday = 0;
-@@ -322,7 +322,7 @@ public class Calendar.EventStore : Object {
- // Get the start of week
- // HACK This line produces a string of 3 bytes. It takes the raw value
- // of the first one and uses that as the value of week_start.
-- int week_start_posix = Posix.NLTime.FIRST_WEEKDAY.to_string ().data[0];
-+ int week_start_posix = Posix.NLItem.DAY_1.to_string ().data[0];
+- } else if (week_day1 == 19971201) { // Monday
+- week_1stday = 1;
+- } else {
+- warning ("Unknown value of _NL_TIME_WEEK_1STDAY: %u", week_day1);
+ }
+ /* The offset between GLib and local POSIX numbering.
+ * If week_1stday is Monday, data is correct for GLib: Monday=1 through Sunday=7,
+@@ -319,12 +310,7 @@ public class Calendar.EventStore : Object {
+ * subtracted by 1, then Sunday has to be handled separately to wrap to 7. */
+ var glib_offset = week_1stday - 1;
- var week_start = week_start_posix + glib_offset;
+- // Get the start of week
+- // HACK This line produces a string of 3 bytes. It takes the raw value
+- // of the first one and uses that as the value of week_start.
+- int week_start_posix = Posix.NLTime.FIRST_WEEKDAY.to_string ().data[0];
+-
+- var week_start = week_start_posix + glib_offset;
++ var week_start = glib_offset;
if (week_start == 0) { // Sunday special case
+ week_start = 7;
+ }
diff --git a/deskutils/elementary-calendar/files/patch-src_MainWindow.vala b/deskutils/elementary-calendar/files/patch-src_MainWindow.vala
new file mode 100644
index 000000000000..d4e3fbe3422b
--- /dev/null
+++ b/deskutils/elementary-calendar/files/patch-src_MainWindow.vala
@@ -0,0 +1,14 @@
+--- src/MainWindow.vala.orig 2021-01-18 04:30:35 UTC
++++ src/MainWindow.vala
+@@ -51,8 +51,9 @@ public class Maya.MainWindow : Gtk.ApplicationWindow {
+ construct {
+ add_action_entries (ACTION_ENTRIES, this);
+
+- foreach (var action in action_accelerators.get_keys ()) {
+- ((Gtk.Application) GLib.Application.get_default ()).set_accels_for_action (ACTION_PREFIX + action, action_accelerators[action].to_array ());
++ var iter = action_accelerators.map_iterator ();
++ while (iter.next ()) {
++ ((Gtk.Application) GLib.Application.get_default ()).set_accels_for_action (ACTION_PREFIX + iter.get_key (), { iter.get_value () });
+ }
+
+ weak Gtk.IconTheme default_theme = Gtk.IconTheme.get_default ();