supplement 2.20 → 2.21
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/README +1 -1
- data/lib/mkrf_conf +8 -5
- data/lib/supplement/locked.c +19 -0
- data/lib/supplement/terminal.c +29 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7195670e7cd62225ea949b29536edf23349f53688ad4bb85f2aae7e90497cef9
|
4
|
+
data.tar.gz: 61b52622f92b881337daf310681533758245f61b9939997caf018088e0f00547
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fecc23c00a4981a04cd4193297ff84f768b2b37d98e471a36a86e7af062197ddbe4977f9d44c0f2f979b22dddfc4c28d889189e7c029cc0a7a4f6eb6b5b474b
|
7
|
+
data.tar.gz: 1e8e2585b26e5fa445d370b169a7ba73d08b42bec9399bf6b4ade2b90fc4fc0885d766a24c26705899bc176cf15d71d6b27645f3723ee1eff743bb2ce9a68016
|
data/README
CHANGED
data/lib/mkrf_conf
CHANGED
@@ -10,12 +10,15 @@ Autorake.configure {
|
|
10
10
|
|
11
11
|
extending_ruby
|
12
12
|
|
13
|
-
if RUBY_VERSION < "
|
14
|
-
if RUBY_VERSION < "2.
|
15
|
-
|
13
|
+
if RUBY_VERSION < "3.3" then
|
14
|
+
if RUBY_VERSION < "2.7" then
|
15
|
+
if RUBY_VERSION < "2.6" then
|
16
|
+
enable :dir_children
|
17
|
+
end
|
18
|
+
else
|
19
|
+
enable :super_kwargs
|
16
20
|
end
|
17
|
-
|
18
|
-
enable :super_kwargs
|
21
|
+
enable :old_io_functions
|
19
22
|
end
|
20
23
|
|
21
24
|
have_header "ruby/ruby.h"
|
data/lib/supplement/locked.c
CHANGED
@@ -28,20 +28,35 @@
|
|
28
28
|
VALUE
|
29
29
|
rb_locked_init( int argc, VALUE *argv, VALUE self)
|
30
30
|
{
|
31
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
32
|
+
rb_io_t *fptr;
|
33
|
+
#endif
|
31
34
|
#ifdef HAVE_FUNC_RB_THREAD_WAIT_FOR
|
32
35
|
struct timeval time;
|
33
36
|
#endif
|
34
37
|
int op;
|
35
38
|
|
39
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
40
|
+
GetOpenFile( self, fptr);
|
41
|
+
#endif
|
42
|
+
|
36
43
|
#ifdef FEATURE_SUPER_KWARGS
|
37
44
|
rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);
|
38
45
|
#else
|
39
46
|
rb_call_super( argc, argv);
|
40
47
|
#endif
|
41
48
|
|
49
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
50
|
+
op = fptr->mode & FMODE_WRITABLE ? LOCK_EX : LOCK_SH;
|
51
|
+
#else
|
42
52
|
op = rb_io_mode( self) & FMODE_WRITABLE ? LOCK_EX : LOCK_SH;
|
53
|
+
#endif
|
43
54
|
op |= LOCK_NB;
|
55
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
56
|
+
while (flock( fptr->fd, op) < 0) {
|
57
|
+
#else
|
44
58
|
while (flock( rb_io_descriptor( self), op) < 0) {
|
59
|
+
#endif
|
45
60
|
static ID id_lock_failed = 0;
|
46
61
|
|
47
62
|
switch (errno) {
|
@@ -67,7 +82,11 @@ rb_locked_init( int argc, VALUE *argv, VALUE self)
|
|
67
82
|
}
|
68
83
|
break;
|
69
84
|
default:
|
85
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
86
|
+
rb_sys_fail_str( fptr->pathv);
|
87
|
+
#else
|
70
88
|
rb_sys_fail_str( rb_io_path( self));
|
89
|
+
#endif
|
71
90
|
break;
|
72
91
|
}
|
73
92
|
}
|
data/lib/supplement/terminal.c
CHANGED
@@ -13,7 +13,13 @@ static VALUE io_unget( VALUE);
|
|
13
13
|
static VALUE io_reset( VALUE);
|
14
14
|
|
15
15
|
|
16
|
-
#
|
16
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
17
|
+
#define RB_FAIL_PATH( io, fptr) ((fptr)->pathv)
|
18
|
+
#define RB_IO_VAR( io, fptr) fptr
|
19
|
+
#else
|
20
|
+
#define RB_FAIL_PATH( io, fptr) rb_io_path( io)
|
21
|
+
#define RB_IO_VAR( io, fptr) io
|
22
|
+
#endif
|
17
23
|
|
18
24
|
/*
|
19
25
|
* call-seq:
|
@@ -27,20 +33,28 @@ static VALUE io_reset( VALUE);
|
|
27
33
|
VALUE
|
28
34
|
rb_io_unget( int argc, VALUE *argv, VALUE io)
|
29
35
|
{
|
36
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
37
|
+
rb_io_t *fptr;
|
38
|
+
#endif
|
30
39
|
int fd;
|
31
40
|
struct termios oldtio, newtio;
|
32
41
|
void *v[5];
|
33
42
|
|
43
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
44
|
+
GetOpenFile( io, fptr);
|
45
|
+
fd = fptr->fd;
|
46
|
+
#else
|
34
47
|
fd = rb_io_descriptor( io);
|
48
|
+
#endif
|
35
49
|
|
36
50
|
if (tcgetattr( fd, &oldtio) < 0)
|
37
|
-
|
51
|
+
rb_sys_fail_str( RB_FAIL_PATH( io, fptr));
|
38
52
|
newtio = oldtio;
|
39
53
|
newtio.c_iflag &= ~ICRNL;
|
40
54
|
if (tcsetattr( fd, TCSANOW, &newtio) < 0)
|
41
|
-
|
55
|
+
rb_sys_fail_str( RB_FAIL_PATH( io, fptr));
|
42
56
|
|
43
|
-
v[0] = &fd, v[1] = (void *) io, v[2] = &oldtio,
|
57
|
+
v[0] = &fd, v[1] = (void *) RB_IO_VAR( io, fptr), v[2] = &oldtio,
|
44
58
|
v[3] = &argc, v[4] = (void *) argv;
|
45
59
|
return rb_ensure( io_unget, (VALUE) v, io_reset, (VALUE) v);
|
46
60
|
}
|
@@ -62,7 +76,7 @@ io_unget( VALUE v)
|
|
62
76
|
p = RSTRING_PTR(str);
|
63
77
|
for (i = RSTRING_LEN(str); i; --i, ++p)
|
64
78
|
if (ioctl( *(int *) vp[0], TIOCSTI, p) < 0)
|
65
|
-
|
79
|
+
rb_sys_fail_str( RB_FAIL_PATH( (VALUE) vp[1], (rb_io_t *) vp[1]));
|
66
80
|
}
|
67
81
|
return Qnil;
|
68
82
|
}
|
@@ -73,7 +87,7 @@ io_reset( VALUE v)
|
|
73
87
|
void **vp = (void **) v;
|
74
88
|
|
75
89
|
if (tcsetattr( *(int *) vp[0], TCSANOW, (struct termios *) vp[2]) < 0)
|
76
|
-
|
90
|
+
rb_sys_fail_str( RB_FAIL_PATH( (VALUE) vp[1], (rb_io_t *) vp[1]));
|
77
91
|
|
78
92
|
return Qnil;
|
79
93
|
}
|
@@ -91,14 +105,22 @@ io_reset( VALUE v)
|
|
91
105
|
VALUE
|
92
106
|
rb_io_wingeom( VALUE self)
|
93
107
|
{
|
108
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
109
|
+
rb_io_t *fptr;
|
110
|
+
#endif
|
94
111
|
int fd;
|
95
112
|
struct winsize w;
|
96
113
|
VALUE r;
|
97
114
|
|
115
|
+
#ifdef FEATURE_OLD_IO_FUNCTIONS
|
116
|
+
GetOpenFile( self, fptr);
|
117
|
+
fd = fptr->fd;
|
118
|
+
#else
|
98
119
|
fd = rb_io_descriptor( self);
|
120
|
+
#endif
|
99
121
|
|
100
122
|
if (ioctl( fd, TIOCGWINSZ, &w) < 0)
|
101
|
-
|
123
|
+
rb_sys_fail_str( RB_FAIL_PATH( self, fptr));
|
102
124
|
r = rb_ary_new2( 4);
|
103
125
|
rb_ary_store( r, 0, INT2NUM( w.ws_col));
|
104
126
|
rb_ary_store( r, 1, INT2NUM( w.ws_row));
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supplement
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.21'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bertram Scharpf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
95
|
version: '0'
|
96
96
|
requirements:
|
97
97
|
- Ruby and the autorake gem
|
98
|
-
rubygems_version: 3.5.
|
98
|
+
rubygems_version: 3.5.6
|
99
99
|
signing_key:
|
100
100
|
specification_version: 4
|
101
101
|
summary: Simple Ruby extensions
|