aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/vobject/lib/Recur
diff options
context:
space:
mode:
authorKlaus Weidenbach <Klaus.Weidenbach@gmx.net>2016-10-17 23:26:48 +0200
committerKlaus Weidenbach <Klaus.Weidenbach@gmx.net>2016-10-18 18:11:41 +0200
commit745515b11f438d3658203aaaaf151c72e30d5e7c (patch)
treeed43b874f5519cf06a05a703e144fd6acad06d4b /vendor/sabre/vobject/lib/Recur
parent17091bd38c4e4e5d8b1812dd1d9efeffe0046d02 (diff)
downloadvolse-hubzilla-745515b11f438d3658203aaaaf151c72e30d5e7c.tar.gz
volse-hubzilla-745515b11f438d3658203aaaaf151c72e30d5e7c.tar.bz2
volse-hubzilla-745515b11f438d3658203aaaaf151c72e30d5e7c.zip
[FEATURE] Add config and use composer autoloader.
We use composer already to install SabreDAV. Include config composer.(json|lock) to install and manage more dependencies in future. Also provide PSR-4 autoloading for our namespaced classes, e.g. "Zotlabs\". To regenerate autoloader maps use: $ composer install --optimize-autoloader --no-dev We could also remove the whole vendor/ folder from our repository, but that would need changes in deployment and how to install hubs and needs more discussion first.
Diffstat (limited to 'vendor/sabre/vobject/lib/Recur')
-rw-r--r--vendor/sabre/vobject/lib/Recur/EventIterator.php12
-rw-r--r--vendor/sabre/vobject/lib/Recur/RRuleIterator.php5
2 files changed, 13 insertions, 4 deletions
diff --git a/vendor/sabre/vobject/lib/Recur/EventIterator.php b/vendor/sabre/vobject/lib/Recur/EventIterator.php
index 86c996aec..f91c336bc 100644
--- a/vendor/sabre/vobject/lib/Recur/EventIterator.php
+++ b/vendor/sabre/vobject/lib/Recur/EventIterator.php
@@ -325,7 +325,7 @@ class EventIterator implements \Iterator {
$index = [];
foreach ($this->overriddenEvents as $key => $event) {
$stamp = $event->DTSTART->getDateTime($this->timeZone)->getTimeStamp();
- $index[$stamp] = $key;
+ $index[$stamp][] = $key;
}
krsort($index);
$this->counter = 0;
@@ -372,8 +372,9 @@ class EventIterator implements \Iterator {
// overridden event may cut ahead.
if ($this->overriddenEventsIndex) {
- $offset = end($this->overriddenEventsIndex);
+ $offsets = end($this->overriddenEventsIndex);
$timestamp = key($this->overriddenEventsIndex);
+ $offset = end($offsets);
if (!$nextDate || $timestamp < $nextDate->getTimeStamp()) {
// Overridden event comes first.
$this->currentOverriddenEvent = $this->overriddenEvents[$offset];
@@ -383,7 +384,10 @@ class EventIterator implements \Iterator {
$this->currentDate = $this->currentOverriddenEvent->DTSTART->getDateTime($this->timeZone);
// Ensuring that this item will only be used once.
- array_pop($this->overriddenEventsIndex);
+ array_pop($this->overriddenEventsIndex[$timestamp]);
+ if (!$this->overriddenEventsIndex[$timestamp]) {
+ array_pop($this->overriddenEventsIndex);
+ }
// Exit point!
return;
@@ -451,7 +455,7 @@ class EventIterator implements \Iterator {
/**
* Overridden event index.
*
- * Key is timestamp, value is the index of the item in the $overriddenEvent
+ * Key is timestamp, value is the list of indexes of the item in the $overriddenEvent
* property.
*
* @var array
diff --git a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
index 402e2de83..4c89f3ce4 100644
--- a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
+++ b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
@@ -718,6 +718,11 @@ class RRuleIterator implements Iterator {
case 'BYMONTH' :
$this->byMonth = (array)$value;
+ foreach ($this->byMonth as $byMonth) {
+ if (!is_numeric($byMonth) || (int)$byMonth < 1 || (int)$byMonth > 12) {
+ throw new InvalidDataException('BYMONTH in RRULE must have value(s) betweeen 1 and 12!');
+ }
+ }
break;
case 'BYSETPOS' :