vterm 0.0.3 → 0.0.4

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
  SHA256:
3
- metadata.gz: b63d52325a5fec4bf652c45283f7454ffd01bb3c421382e162e2472bc9deada7
4
- data.tar.gz: e9ce0855f23d36f5db1c070e258bd5e5c7e9192b7f52cff847d4cc76c92ff1fe
3
+ metadata.gz: da6e45817a66c11a61b009affb22252a617634872f0ae4ad1f138eb8ed2cc6b9
4
+ data.tar.gz: aaf3c82c2d01951a134888fbbb1ad613d097f2334613590814f23ebb9c151437
5
5
  SHA512:
6
- metadata.gz: 1dee1059669d99c59d0892eabf9e206a3ef45fdfea9d6c93a80189c303e26d022e44f575384b3e288200dc0f01f1b32609c427a5216279b47efa7f7728cd6cc7
7
- data.tar.gz: 814e364e3a844bf1489f7655eaf74735cbe0f68a1c7ffa145ec21ddb92c2b8fc95d80ee1114eb51b87661f61658d630394c3ae452e45eaa816ce1261abbb3cfb
6
+ metadata.gz: 364ad924e5f4c70724ffe836009f5eb0c081589cea007ec443d020611b0d21751e1530aa7021e18f68219959d831403c9b8360e5497b1894c1bd4cf5ea504f15
7
+ data.tar.gz: e2314697d012eedfe76d0d6f05e9c39c172ff0941cbbef6ea11f2d0a18560b9ca6dcefe4afd1f2f33cff9100136250d391ff8d1205e7fbe8a9c843c91584efc4
@@ -32,6 +32,8 @@ rb_vterm_set_utf8(VALUE self, VALUE is_utf8);
32
32
  static VALUE
33
33
  rb_vterm_write(VALUE self, VALUE bytes);
34
34
  static VALUE
35
+ rb_vterm_read(int argc, VALUE *argv, VALUE self);
36
+ static VALUE
35
37
  rb_vterm_screen_reset(VALUE self, VALUE hard);
36
38
  static VALUE
37
39
  rb_vterm_screen_flush(VALUE self);
@@ -169,6 +171,35 @@ rb_vterm_write(VALUE self, VALUE bytes)
169
171
  return Qnil;
170
172
  }
171
173
 
174
+ static VALUE
175
+ rb_vterm_read(int argc, VALUE *argv, VALUE self)
176
+ {
177
+ vterm_data_t *vt_data;
178
+ size_t bufsize;
179
+ size_t specified_size;
180
+
181
+ vt_data = (vterm_data_t*)DATA_PTR(self);
182
+ bufsize = vterm_output_get_buffer_current(vt_data->vt);
183
+ if (argc == 1) {
184
+ specified_size = (size_t)NUM2INT(argv[0]);
185
+ if (specified_size < bufsize) {
186
+ bufsize = specified_size;
187
+ }
188
+ } else if (argc != 0) {
189
+ // TODO argument error
190
+ return Qnil;
191
+ }
192
+ if (bufsize == 0) {
193
+ return rb_str_new_cstr("");
194
+ } else if (bufsize > 0) {
195
+ char outbuf[bufsize];
196
+ vterm_output_read(vt_data->vt, outbuf, bufsize);
197
+ return rb_str_new(outbuf, bufsize);
198
+ } else {
199
+ return Qnil;
200
+ }
201
+ }
202
+
172
203
  static VALUE
173
204
  rb_vterm_get_size(VALUE self)
174
205
  {
@@ -316,6 +347,7 @@ Init_vterm(void)
316
347
  rb_define_method(cVTerm, "screen", rb_vterm_screen, 0);
317
348
  rb_define_method(cVTerm, "set_utf8", rb_vterm_set_utf8, 1);
318
349
  rb_define_method(cVTerm, "write", rb_vterm_write, 1);
350
+ rb_define_method(cVTerm, "read", rb_vterm_read, -1);
319
351
  rb_define_method(cVTerm, "size", rb_vterm_get_size, 0);
320
352
 
321
353
  cVTermScreen = rb_define_class_under(cVTerm, "Screen", rb_cObject);
@@ -1,3 +1,3 @@
1
1
  class VTerm
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vterm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - aycabta
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-12 00:00:00.000000000 Z
11
+ date: 2020-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler