diff --git a/lib/gedcom.rb b/lib/gedcom.rb index 99a4508..38359a5 100644 --- a/lib/gedcom.rb +++ b/lib/gedcom.rb @@ -132,10 +132,10 @@ def concat_data tag, rest @dataStack[-1] << rest else if tag == 'CONT' - @dataStack[-1] << "\n" + rest + @dataStack[-1] << "\n" + (rest || "") elsif tag == 'CONC' old = @dataStack[-1].chomp - @dataStack[-1] = old + rest + @dataStack[-1] = old + (rest || "") end end end @@ -167,7 +167,7 @@ def detect_rs io rs = "\x0d" mark = io.pos begin - while ch = io.readchar + while !io.eof && ch = io.readchar case ch when 0x0d ch2 = io.readchar diff --git a/lib/gedcom_date_parser.rb b/lib/gedcom_date_parser.rb index 6fecdd9..2d95056 100644 --- a/lib/gedcom_date_parser.rb +++ b/lib/gedcom_date_parser.rb @@ -733,7 +733,7 @@ def self.parse_date_part( parser, datePart, type ) end end - state = ST_DT_ERROR if( !transitionFound ) + state = ST_DT_ERROR if( transitionFound == 0 ) end raise DateParseException, "error parsing datepart, general" if( state == ST_DT_ERROR ) @@ -899,7 +899,7 @@ def self.parse_gedcom_date( dateString, date, type = GCTDEFAULT ) end end - state = ST_DV_ERROR if( !transitionFound ) + state = ST_DV_ERROR if( transitionFound == 0 ) end if( state == ST_DV_ERROR )