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