| Summary | yaml loader fails if string contain curly brackets |
| Queue | Horde Framework Packages |
| Queue Version | HEAD |
| Type | Bug |
| State | Assigned |
| Priority | 2. Medium |
| Owners | Chuck Hagenbuch <chuck (at) horde (dot) org>, Mike Naberezny <mike (at) naberezny (dot) com> |
| Requester | eero (dot) afheurlin (at) nemein (dot) com |
| Created | 01/13/09 (427 days ago) |
| Due | |
| Updated | 03/21/09 (360 days ago) |
| Assigned | 01/13/09 (427 days ago) |
| Resolved | |
| Attachments | |
| Milestone | |
| Patch | No |
on the old spyc at least (and the last time I looked you used the same
code for parsing).
syck does not care about quoting or such, it "just works"
Assigned to Mike Naberezny
Assigned to Chuck Hagenbuch
State ⇒ Unconfirmed
Patch ⇒
Milestone ⇒
Queue ⇒ Horde Framework Packages
Summary ⇒ yaml loader fails if string contain curly brackets
Type ⇒ Bug
Priority ⇒ 2. Medium
---<snip>---
routes:
index:
controller: net_nemein_news_controllers_index
action: latest
route: /
content_entry_point: nnn-show-latest
allowed_methods:
- OPTIONS
- GET
- PROPFIND
latest:
controller: net_nemein_news_controllers_index
action: latest
route: "/latest/{$int:number}/"
content_entry_point: nnn-show-latest
rss:
controller: net_nemein_news_controllers_index
action: latest
route: /rss.xml
mimetype: text/xml
template_entry_point: nnn-show-rss
show:
controller: net_nemein_news_controllers_article
action: show
route: "/{$name}/"
content_entry_point: nnn-show-article
edit:
controller: net_nemein_news_controllers_article
action: edit
route: "/{$name}/edit"
content_entry_point: nnn-edit-article
---<snap>---
This has the same bug as spyck in the parser (supposedly) thinking
that the curly brackets inside strings are inline maps
syck parses this correctly even when the routes with curly brackets
are not quoted.
tested on "PHP 5.2.0-8+etch11 (cli)" using the following code and
horde/Yaml-1.0.1 via PEAR.
---<snip>---
<?php
error_reporting(E_ALL);
require_once('Horde/Yaml.php');
require_once('Horde/Yaml/Node.php');
require_once('Horde/Yaml/Exception.php');
require_once('Horde/Yaml/Loader.php');
$path = realpath(dirname(__FILE__)) . '/test.yml';
echo "path={$path}\n";
$array = Horde_Yaml::load($path);
if ( !( isset($array['routes'])
&& isset($array['routes']['latest'])
&& isset($array['routes']['latest']['route'])
&& is_string($array['routes']['latest']['route']))
|| !( isset($array['routes'])
&& isset($array['routes']['show'])
&& isset($array['routes']['show']['route'])
&& is_string($array['routes']['show']['route']))
)
{
echo "ERROR: Invalidly parsed route\n";
var_dump($array);
exit(1);
}
echo "No errors detected";
?>
---<snip>---