Project

General

Profile

Feature #13568 » tmpfile-path.patch

sorah (Sorah Fukumori), 05/15/2017 10:35 AM

View differences:

io.c
rb_file_open_generic(VALUE io, VALUE filename, int oflags, int fmode,
const convconfig_t *convconfig, mode_t perm)
{
VALUE pathv;
rb_io_t *fptr;
convconfig_t cc;
if (!convconfig) {
......
MakeOpenFile(io, fptr);
fptr->mode = fmode;
fptr->encs = *convconfig;
fptr->pathv = rb_str_new_frozen(filename);
fptr->fd = rb_sysopen(fptr->pathv, oflags, perm);
pathv = rb_str_new_frozen(filename);
#ifdef O_TMPFILE
if (!(oflags & O_TMPFILE))
fptr->pathv = pathv;
#else
fptr->pathv = pathv;
#endif
fptr->fd = rb_sysopen(pathv, oflags, perm);
io_check_tty(fptr);
if (fmode & FMODE_SETENC_BY_BOM) io_set_encoding_by_bom(io);
test/ruby/test_file.rb
assert_file.not_exist?(path)
end
end
def test_open_tempfile_path
Dir.mktmpdir(__method__.to_s) do |tmpdir|
File.open(tmpdir, File::RDWR | File::TMPFILE) do |io|
io.write "foo"
io.flush
assert_nil io.path
assert_equal 3, io.size
end
end
end if File::Constants.const_defined?(:TMPFILE)
end
(1-1/2)