merges r30628 from trunk into ruby_1_9_2.

--
* ext/psych/parser.c (parse): fixing off-by-one error on line numbers
  in parse exceptions.  [ruby-core:34690]
* test/psych/test_parser.rb: test for error

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@30691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yugui 2011-01-28 02:25:31 +00:00
parent a0e5aea08a
commit 4676e643aa
4 changed files with 24 additions and 2 deletions

View file

@ -1,3 +1,10 @@
Sat Jan 22 11:21:40 2011 Aaron Patterson <aaron@tenderlovemaking.com>
* ext/psych/parser.c (parse): fixing off-by-one error on line numbers
in parse exceptions. [ruby-core:34690]
* test/psych/test_parser.rb: test for error
Wed Jan 19 13:04:16 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com> Wed Jan 19 13:04:16 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* proc.c (proc_call): Add gc guard to avoid segfault. The fix * proc.c (proc_call): Add gc guard to avoid segfault. The fix

View file

@ -75,7 +75,7 @@ static VALUE parse(VALUE self, VALUE yaml)
while(!done) { while(!done) {
if(!yaml_parser_parse(&parser, &event)) { if(!yaml_parser_parse(&parser, &event)) {
size_t line = parser.mark.line; size_t line = parser.mark.line + 1;
size_t column = parser.mark.column; size_t column = parser.mark.column;
yaml_parser_delete(&parser); yaml_parser_delete(&parser);

View file

@ -46,6 +46,21 @@ module Psych
end end
end end
# ruby-core:34690
def test_exception_line
e = assert_raises(Psych::SyntaxError) do
@parser.parse(<<-eoyaml)
# based on "SGML/XML character entity reference" at http://www.bitjungle.com/isoent/
#
---
#DOUBLE LOW-9 QUOTATION MARK
#requires fontenc:T1
ldquor: ,,
eoyaml
end
assert_match 'line 6', e.message
end
def test_mapping_end def test_mapping_end
@parser.parse("---\n!!map { key: value }") @parser.parse("---\n!!map { key: value }")
assert_called :end_mapping assert_called :end_mapping

View file

@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.2" #define RUBY_VERSION "1.9.2"
#define RUBY_PATCHLEVEL 168 #define RUBY_PATCHLEVEL 169
#define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1 #define RUBY_VERSION_TEENY 1