vterm 0.0.3 → 0.0.4

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.
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