zscan 0.2 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/ext/zscan.c +4 -0
  3. data/lib/zscan.rb +7 -1
  4. data/zscan.gemspec +1 -1
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 009307140540b30af03fa7d83fc942d4a9aa920a
4
- data.tar.gz: 414f4fd5ee5b063da7cdb3ad5eb10d21a2b5dcbc
3
+ metadata.gz: 4ea1628b5cfb954748386729a21dffe6c6d6d25b
4
+ data.tar.gz: 915abaa26d3e019bb92aa83df60401d7588feead
5
5
  SHA512:
6
- metadata.gz: 34d0f608b91d1f2269bc043b57e9969dd5f40dcc3b6ce332fbb2de1131217f1c9bc97e042c6f0f3103996e14eaa7b7b2dfa4e43e27f795ecde0f273590dd2374
7
- data.tar.gz: a8f5a611bd5d6cec996fc5d8f956eda707f6c185204dadf918160faf4db620fec786edd8aec0e981e839483eeeaa41b6ff4cda3965e2c7db37a34b440d29be67
6
+ metadata.gz: 6019ff48939fd372026edf8658f4dbf0c39b29f412e9be211b25134169b01bdc30530057f64481189177b62e1f02bfee6ee8f1983b9fb155b9140cc48ce70d46
7
+ data.tar.gz: 616662d24c577dadd4b6e6dc3b9e2af1b174ffcc526c336a45b8c96fcfd9682e2c30b590a88426f52eb2c410ab97a45162b13b3256b2258f69f64bc476d8bf44
data/ext/zscan.c CHANGED
@@ -111,6 +111,10 @@ static VALUE zscan_bytepos_eq(VALUE self, VALUE v_bytepos) {
111
111
  size_t bytepos = NUM2ULONG(v_bytepos);
112
112
  size_t from, to;
113
113
 
114
+ if (bytepos > (size_t)RSTRING_LEN(p->s)) {
115
+ bytepos = RSTRING_LEN(p->s);
116
+ }
117
+
114
118
  if (bytepos > p->bytepos) {
115
119
  from = p->bytepos;
116
120
  to = bytepos;
data/lib/zscan.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require_relative "../ext/zscan"
2
2
 
3
3
  class ZScan
4
- VERSION = '0.1'
4
+ VERSION = '0.3'
5
5
 
6
6
  def initialize s, dup=false
7
7
  _internal_init dup ? s.dup : s
@@ -58,5 +58,11 @@ if __FILE__ == $PROGRAM_NAME
58
58
  z.bytepos = 2
59
59
  assert '你', z.scan('你')
60
60
  assert '好', z.rest
61
+ z.bytepos = 20
62
+ assert 8, z.bytepos
63
+ assert 4, z.pos
64
+ z.skip('ab')
65
+ assert 8, z.bytepos
66
+ assert 4, z.pos
61
67
  z = nil
62
68
  end
data/zscan.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "zscan"
3
- s.version = "0.2"
3
+ s.version = "0.3"
4
4
  s.author = "Zete Lui"
5
5
  s.homepage = "https://github.com/luikore/zscan"
6
6
  s.platform = Gem::Platform::RUBY
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zscan
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zete Lui