…and target dirs
This addresses an obscure case where a hash string (actually a commit-ish, "686e444") was dumped to YAML as an unquoted string value. It was later parsed from YAML as an exponential numeric and changed to ".Inf".
…exception for the dump)
encoding is detected using the `mb_detect_encoding()`-function in strict-mode. Checking is done before the parsing starts. Without this patch, the calls to `preg_replace()` using the 'u'-modifier would cause the non-utf8-string being processed to be empty when parsing starts which makes the parsing return no result.
Added support for the full range of escaped values in double quoted strings in chapter 5 of the YAML 1.1 and 1.2 specs. The escaping and unescaping strategies were factored out into separate classes to keep the logic isolated. Added examples from the spec to the unit tests for all escaped values.