kgio 1.3.0 → 1.3.0.1.gd225

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,5 +1,13 @@
1
1
  ChangeLog from git://git.bogomips.org/kgio.git ()
2
2
 
3
+ commit d225ede82d820d045bd7cfb826f444cf6601577c
4
+ Author: Eric Wong <normalperson@yhbt.net>
5
+ Date: Fri Oct 8 02:53:38 2010 -0700
6
+
7
+ return empty string on length=0
8
+
9
+ This matches behavior of all the core Ruby methods.
10
+
3
11
  commit e4599227f0da0f652cbcb52838e631d7384dcd0d
4
12
  Author: Eric Wong <e@yhbt.net>
5
13
  Date: Thu Oct 7 20:02:40 2010 -0700
data/GIT-VERSION-FILE CHANGED
@@ -1 +1 @@
1
- GIT_VERSION = 1.3.0
1
+ GIT_VERSION = 1.3.0.1.gd225
@@ -92,11 +92,14 @@ static VALUE my_read(int io_wait, int argc, VALUE *argv, VALUE io)
92
92
  long n;
93
93
 
94
94
  prepare_read(&a, argc, argv, io);
95
- set_nonblocking(a.fd);
95
+
96
+ if (a.len > 0) {
97
+ set_nonblocking(a.fd);
96
98
  retry:
97
- n = (long)read(a.fd, a.ptr, a.len);
98
- if (read_check(&a, n, "read", io_wait) != 0)
99
- goto retry;
99
+ n = (long)read(a.fd, a.ptr, a.len);
100
+ if (read_check(&a, n, "read", io_wait) != 0)
101
+ goto retry;
102
+ }
100
103
  return a.buf;
101
104
  }
102
105
 
@@ -159,10 +162,13 @@ static VALUE my_recv(int io_wait, int argc, VALUE *argv, VALUE io)
159
162
  long n;
160
163
 
161
164
  prepare_read(&a, argc, argv, io);
165
+
166
+ if (a.len > 0) {
162
167
  retry:
163
- n = (long)recv(a.fd, a.ptr, a.len, MSG_DONTWAIT);
164
- if (read_check(&a, n, "recv", io_wait) != 0)
165
- goto retry;
168
+ n = (long)recv(a.fd, a.ptr, a.len, MSG_DONTWAIT);
169
+ if (read_check(&a, n, "recv", io_wait) != 0)
170
+ goto retry;
171
+ }
166
172
  return a.buf;
167
173
  }
168
174
 
@@ -18,6 +18,20 @@ module LibReadWriteTest
18
18
  end
19
19
  end
20
20
 
21
+ def test_read_zero
22
+ assert_equal "", @rd.kgio_read(0)
23
+ buf = "foo"
24
+ assert_equal buf.object_id, @rd.kgio_read(0, buf).object_id
25
+ assert_equal "", buf
26
+ end
27
+
28
+ def test_tryread_zero
29
+ assert_equal "", @rd.kgio_tryread(0)
30
+ buf = "foo"
31
+ assert_equal buf.object_id, @rd.kgio_tryread(0, buf).object_id
32
+ assert_equal "", buf
33
+ end
34
+
21
35
  def test_read_eof
22
36
  @wr.close
23
37
  assert_nil @rd.kgio_read(5)
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kgio
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
4
+ hash: 375488223
5
+ prerelease: true
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
9
  - 0
10
- version: 1.3.0
10
+ - 1
11
+ - gd225
12
+ version: 1.3.0.1.gd225
11
13
  platform: ruby
12
14
  authors:
13
15
  - kgio hackers
@@ -112,12 +114,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
114
  required_rubygems_version: !ruby/object:Gem::Requirement
113
115
  none: false
114
116
  requirements:
115
- - - ">="
117
+ - - ">"
116
118
  - !ruby/object:Gem::Version
117
- hash: 3
119
+ hash: 25
118
120
  segments:
119
- - 0
120
- version: "0"
121
+ - 1
122
+ - 3
123
+ - 1
124
+ version: 1.3.1
121
125
  requirements: []
122
126
 
123
127
  rubyforge_project: rainbows