zscan 0.2 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/zscan.c +4 -0
- data/lib/zscan.rb +7 -1
- data/zscan.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ea1628b5cfb954748386729a21dffe6c6d6d25b
|
4
|
+
data.tar.gz: 915abaa26d3e019bb92aa83df60401d7588feead
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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