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 +4 -4
- data/ext/vterm/vterm.c +32 -0
- data/lib/vterm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da6e45817a66c11a61b009affb22252a617634872f0ae4ad1f138eb8ed2cc6b9
|
4
|
+
data.tar.gz: aaf3c82c2d01951a134888fbbb1ad613d097f2334613590814f23ebb9c151437
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 364ad924e5f4c70724ffe836009f5eb0c081589cea007ec443d020611b0d21751e1530aa7021e18f68219959d831403c9b8360e5497b1894c1bd4cf5ea504f15
|
7
|
+
data.tar.gz: e2314697d012eedfe76d0d6f05e9c39c172ff0941cbbef6ea11f2d0a18560b9ca6dcefe4afd1f2f33cff9100136250d391ff8d1205e7fbe8a9c843c91584efc4
|
data/ext/vterm/vterm.c
CHANGED
@@ -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);
|
data/lib/vterm/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2020-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|