posix-spawn 0.3.12 → 0.3.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +9 -0
- data/ext/posix-spawn.c +12 -3
- data/lib/posix/spawn/child.rb +0 -2
- data/lib/posix/spawn/version.rb +1 -1
- data/lib/posix/spawn.rb +5 -5
- data/test/test_spawn.rb +1 -1
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e80888255d57122ba2ad477c456582e0ebfdd05a61b175c60577ee8b38e579ad
|
4
|
+
data.tar.gz: 12d37e71310f0127b75b0f31da196c9c7554cac29a31d63754583f7737132190
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3371e197b9b63ec2dce0b64d070bce8628ccb63112bcd14e8f7426891d1acf4d4ce4bc9558f44a832eaabd194b4b11a7feb2f12db2dd1d6db60968b8b9bc1a2a
|
7
|
+
data.tar.gz: 4d63126f9866a66ac6cc50d811be076939e1048f490aa40c55db1931398e016d225c3ae3da939a93646be551e6b207066f1dd4d2a1ee4f7dfe859a4404325242
|
data/.travis.yml
ADDED
data/ext/posix-spawn.c
CHANGED
@@ -45,7 +45,7 @@ static VALUE rb_mPOSIXSpawn;
|
|
45
45
|
* an actual fd number:
|
46
46
|
* - The symbols :in, :out, or :err for fds 0, 1, or 2.
|
47
47
|
* - An IO object. (IO#fileno is returned)
|
48
|
-
* -
|
48
|
+
* - An Integer.
|
49
49
|
*
|
50
50
|
* Returns the fd number >= 0 if one could be established, or -1 if the object
|
51
51
|
* does not map to an fd.
|
@@ -56,7 +56,11 @@ posixspawn_obj_to_fd(VALUE obj)
|
|
56
56
|
int fd = -1;
|
57
57
|
switch (TYPE(obj)) {
|
58
58
|
case T_FIXNUM:
|
59
|
-
|
59
|
+
case T_BIGNUM:
|
60
|
+
/* Integer fd number
|
61
|
+
* rb_fix2int takes care of raising if the provided object is a
|
62
|
+
* Bignum and is out of range of an int
|
63
|
+
*/
|
60
64
|
fd = FIX2INT(obj);
|
61
65
|
break;
|
62
66
|
|
@@ -94,7 +98,7 @@ posixspawn_obj_to_fd(VALUE obj)
|
|
94
98
|
/*
|
95
99
|
* Hash iterator that sets up the posix_spawn_file_actions_t with addclose
|
96
100
|
* operations. Only hash pairs whose value is :close are processed. Keys may
|
97
|
-
* be the :in, :out, :err, an IO object, or
|
101
|
+
* be the :in, :out, :err, an IO object, or an Integer fd number.
|
98
102
|
*
|
99
103
|
* Returns ST_DELETE when an addclose operation was added; ST_CONTINUE when
|
100
104
|
* no operation was performed.
|
@@ -279,6 +283,11 @@ each_env_i(VALUE key, VALUE val, VALUE arg)
|
|
279
283
|
const char *ev = envp[i];
|
280
284
|
|
281
285
|
if (strlen(ev) > name_len && !memcmp(ev, name, name_len) && ev[name_len] == '=') {
|
286
|
+
/* This operates on a duplicated environment -- release the
|
287
|
+
* existing entry memory before shifting the subsequent entry
|
288
|
+
* pointers down. */
|
289
|
+
free(envp[i]);
|
290
|
+
|
282
291
|
for (j = i; envp[j]; ++j)
|
283
292
|
envp[j] = envp[j + 1];
|
284
293
|
continue;
|
data/lib/posix/spawn/child.rb
CHANGED
data/lib/posix/spawn/version.rb
CHANGED
data/lib/posix/spawn.rb
CHANGED
@@ -85,7 +85,7 @@ module POSIX
|
|
85
85
|
#
|
86
86
|
# spawn(command, :chdir => "/var/tmp")
|
87
87
|
#
|
88
|
-
# The :in, :out, :err,
|
88
|
+
# The :in, :out, :err, an Integer, an IO object or an Array option specify
|
89
89
|
# fd redirection. For example, stderr can be merged into stdout as follows:
|
90
90
|
#
|
91
91
|
# spawn(command, :err => :out)
|
@@ -460,11 +460,11 @@ module POSIX
|
|
460
460
|
|
461
461
|
# Determine whether object is fd-like.
|
462
462
|
#
|
463
|
-
# Returns true if object is an instance of IO,
|
463
|
+
# Returns true if object is an instance of IO, Integer >= 0, or one of the
|
464
464
|
# the symbolic names :in, :out, or :err.
|
465
465
|
def fd?(object)
|
466
466
|
case object
|
467
|
-
when
|
467
|
+
when Integer
|
468
468
|
object >= 0
|
469
469
|
when :in, :out, :err, STDIN, STDOUT, STDERR, $stdin, $stdout, $stderr, IO
|
470
470
|
true
|
@@ -486,7 +486,7 @@ module POSIX
|
|
486
486
|
STDOUT
|
487
487
|
when :err, 2
|
488
488
|
STDERR
|
489
|
-
when
|
489
|
+
when Integer
|
490
490
|
object >= 0 ? IO.for_fd(object) : nil
|
491
491
|
when IO
|
492
492
|
object
|
@@ -529,7 +529,7 @@ module POSIX
|
|
529
529
|
#
|
530
530
|
# Returns a [[cmdname, argv0], argv1, ...] array.
|
531
531
|
def adjust_process_spawn_argv(args)
|
532
|
-
if args.size == 1 && args[0] =~ /[ |>]/
|
532
|
+
if args.size == 1 && args[0].is_a?(String) && args[0] =~ /[ |>]/
|
533
533
|
# single string with these characters means run it through the shell
|
534
534
|
command_and_args = system_command_prefixes + [args[0]]
|
535
535
|
[*command_and_args]
|
data/test/test_spawn.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posix-spawn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Tomayko
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-07-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -52,6 +52,7 @@ extra_rdoc_files:
|
|
52
52
|
- HACKING
|
53
53
|
files:
|
54
54
|
- ".gitignore"
|
55
|
+
- ".travis.yml"
|
55
56
|
- COPYING
|
56
57
|
- Gemfile
|
57
58
|
- HACKING
|
@@ -91,10 +92,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
92
|
- !ruby/object:Gem::Version
|
92
93
|
version: '0'
|
93
94
|
requirements: []
|
94
|
-
|
95
|
-
rubygems_version: 2.4.5.1
|
95
|
+
rubygems_version: 3.0.3
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: posix_spawnp(2) for ruby
|
99
99
|
test_files: []
|
100
|
-
has_rdoc:
|