Skip to content

Commit 03cac30

Browse files
committed
Correctly parsing empty parameters now.
1 parent 3d3914d commit 03cac30

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed

ChangeLog

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
2.0.6-stable (2012-??-??)
1+
2.0.6-stable (2013-02-17)
2+
* Fixed: The reader now properly parses parameters without a value.
23

34
2.0.5-stable (2012-11-05)
45
* Fixed: The FreeBusyGenerator is now properly using the factory methods

lib/Sabre/VObject/Reader.php

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -188,22 +188,28 @@ static private function readParameters($parameters) {
188188
$params = array();
189189
foreach($matches as $match) {
190190

191-
$value = isset($match['paramValue'])?$match['paramValue']:null;
191+
if (!isset($match['paramValue'])) {
192+
193+
$value = null;
192194

193-
if (isset($value[0])) {
194-
// Stripping quotes, if needed
195-
if ($value[0] === '"') $value = substr($value,1,strlen($value)-2);
196195
} else {
197-
$value = '';
198-
}
199196

200-
$value = preg_replace_callback('#(\\\\(\\\\|N|n|;|,))#',function($matches) {
201-
if ($matches[2]==='n' || $matches[2]==='N') {
202-
return "\n";
203-
} else {
204-
return $matches[2];
197+
$value = $match['paramValue'];
198+
199+
if (isset($value[0]) && $value[0]==='"') {
200+
// Stripping quotes, if needed
201+
$value = substr($value,1,strlen($value)-2);
205202
}
206-
}, $value);
203+
204+
$value = preg_replace_callback('#(\\\\(\\\\|N|n|;|,))#',function($matches) {
205+
if ($matches[2]==='n' || $matches[2]==='N') {
206+
return "\n";
207+
} else {
208+
return $matches[2];
209+
}
210+
}, $value);
211+
212+
}
207213

208214
$params[] = new Parameter($match['paramName'], $value);
209215

tests/Sabre/VObject/ReaderTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,8 @@ function testReadPropertyNoValue() {
185185
$this->assertEquals('propValue', $result->value);
186186
$this->assertEquals(1, count($result->parameters));
187187
$this->assertEquals('PARAMNAME', $result->parameters[0]->name);
188-
$this->assertEquals('', $result->parameters[0]->value);
188+
189+
$this->assertNull($result->parameters[0]->value);
189190

190191
}
191192

0 commit comments

Comments
 (0)