parser 2.3.0.4 → 2.3.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cb171255b96bf71809258731c221082841d8af1
4
- data.tar.gz: 2ef132309fc78e96f665e60bdbfecb389f4bda6d
3
+ metadata.gz: 5f5323dd1c3baff2484da66bc48e788fddb6dd8e
4
+ data.tar.gz: 7c604fd2f64eeeedc37b4154b3eab307093a108d
5
5
  SHA512:
6
- metadata.gz: 9f374c086ac8fff2fb0dfc2d0cfb9badc4e6da09b9612992c51e3207bdeff35491ccd7edb13e07b0f7dfe31bd9129df31bf4a4d550f58d9534bc9fdf55c6b064
7
- data.tar.gz: f1821293d14bf5716f5c9e3d8f9af4d6eb7f84f05f3fed3552521770b33add9fd639502c6949c9c04a61775b275d208a199e3261b01c5b1082cf624c37968532
6
+ metadata.gz: 92bd32ec6046d060f0310b7a33a103061d9c21b1b3b74e831de19314abfdca2cedae541a056cbad3f972f38dfdf0d118e096ef906d83b54c3e4faefdb2ad8be9
7
+ data.tar.gz: 989e665aa9cdd33251358b2b0e8008b1a600018ede1ac73abde23151ebac6e95c4649148abfb35fb8d2b495f67a2e66f313a97d0f30e3f9ff7071a6974ce5873
@@ -1,6 +1,12 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ v2.3.0.5 (2016-02-12)
5
+ ---------------------
6
+
7
+ Bugs fixed:
8
+ * lexer.rl: "%Q{\あ}": fix encoding of UTF-8 noop escapes. (whitequark)
9
+
4
10
  v2.3.0.4 (2016-02-09)
5
11
  ---------------------
6
12
 
@@ -17,7 +23,7 @@ Bugs fixed:
17
23
  * Add :csend to Parser::Meta::NODE_TYPES (Markus Schirp)
18
24
  * lexer/dedenter: "\<\<x\n y\\n z\nx": don't dedent after escaped newline. (whitequark)
19
25
 
20
- v2.3.0.4 (2016-01-16)
26
+ v2.3.0.5 (2016-01-16)
21
27
  ---------------------
22
28
 
23
29
  v2.3.0.1 (2016-01-14)
@@ -92,7 +92,6 @@ class Parser::Lexer
92
92
  RBRACE_OR_RBRACK = %w"} ]".freeze
93
93
 
94
94
  attr_reader :source_buffer
95
- attr_reader :encoding
96
95
 
97
96
  attr_accessor :diagnostics
98
97
  attr_accessor :static_env
@@ -183,7 +182,7 @@ class Parser::Lexer
183
182
  if @source_buffer
184
183
  source = @source_buffer.source
185
184
 
186
- if source.respond_to?(:encode) && source.encoding == Encoding::UTF_8
185
+ if defined?(Encoding) && source.encoding == Encoding::UTF_8
187
186
  @source_pts = source.unpack('U*')
188
187
  else
189
188
  @source_pts = source.unpack('C*')
@@ -198,6 +197,10 @@ class Parser::Lexer
198
197
  end
199
198
  end
200
199
 
200
+ def encoding
201
+ @source_buffer.source.encoding
202
+ end
203
+
201
204
  LEX_STATES = {
202
205
  :line_begin => lex_en_line_begin,
203
206
  :expr_dot => lex_en_expr_dot,
@@ -305,11 +308,10 @@ class Parser::Lexer
305
308
  @stack[@top]
306
309
  end
307
310
 
308
- if "".respond_to?(:encode)
311
+ if defined?(Encoding)
309
312
  def encode_escape(ord)
310
- ord.chr.force_encoding(source_buffer.source.encoding)
313
+ ord.chr.force_encoding(@source_buffer.source.encoding)
311
314
  end
312
-
313
315
  else
314
316
  def encode_escape(ord)
315
317
  ord.chr
@@ -663,7 +665,9 @@ class Parser::Lexer
663
665
 
664
666
  action unescape_char {
665
667
  codepoint = @source_pts[p - 1]
666
- @escape = ESCAPES[codepoint] || encode_escape(codepoint)
668
+ if (@escape = ESCAPES[codepoint]).nil?
669
+ @escape = encode_escape(@source_buffer.slice(p - 1))
670
+ end
667
671
  }
668
672
 
669
673
  action invalid_complex_escape {
@@ -1,3 +1,3 @@
1
1
  module Parser
2
- VERSION = '2.3.0.4'
2
+ VERSION = '2.3.0.5'
3
3
  end
@@ -3176,6 +3176,13 @@ class TestLexer < Minitest::Test
3176
3176
  end
3177
3177
  end
3178
3178
 
3179
+ def test_bug_string_utf_escape_noop
3180
+ if defined?(Encoding)
3181
+ assert_scanned(%q{"\あ"}.force_encoding(Encoding::UTF_8),
3182
+ :tSTRING, "あ".force_encoding(Encoding::UTF_8), [0, 4])
3183
+ end
3184
+ end
3185
+
3179
3186
  def test_bug_string_non_utf
3180
3187
  assert_scanned(%Q{"caf\xE9"},
3181
3188
  :tSTRING, "caf\xE9", [0, 6])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0.4
4
+ version: 2.3.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - whitequark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-09 00:00:00.000000000 Z
11
+ date: 2016-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast