summaryrefslogtreecommitdiff
path: root/file.c
AgeCommit message (Collapse)Author
2014-10-11* file.c: include sys/time.h only if HAVE_SYS_TIME_Hyugui
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-11file.c: fix compile error on Linuxnobu
* file.c (sys/time.h): include after unistd.h to get rid of mismatch on struct stat and some system call functions on Linux. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-11* remove trailing spaces.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-11* file.c (HAVE_UTIMENSAT): disabled for NativeClient.yugui
Fixes build error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-11Fixes build failures on Portable Native Client.yugui
Note: Some of the fixes are for newlib in general but not NaCl-specific. * include/ruby/intern.h (rb_fd_select): declare struct timeval, or the struct gets local to the function in C99. * file.c (#include): add nacl/stat.h for PNaCl. (utimes): added a declaration for PNaCl. (stat_atimespec): stat::st_atimensec is long long but timespec::tv_nsec is long in PNaCl. (stat_mtimespec, stat_ctimespec): ditto. (rb_group_member): disable getgroups unless HAVE_GETGROUPS. (eaccess): unify the fallback to generic defined(USE_GETEUID). * io.c: include sys/time.h for struct timeval. (rb_close_before_exec): nothing we can do if F_GETFD is not available. (ioctl): pnacl newlib actually doesn't have ioctl. * process.c (maxgroups): it is used iff defined(_SC_NGROUPS_MAX) || defined(NGROUPS_MAX) but not defined(HAVE_GETGROUPS) || defined(HAVE_SETGROUPS). (obj2gid): fail unless the object is a Fixnum if getgrnam is not available. (disable_child_handler_fork_child): sigaction is not available in PNaCl newlib. * configure.in (warnflags, strict_warnflags): avoid -ansi for strlcpy. (rb_cv_gcc_atomic_builtins): also check __atomic_or_etch because it is used in ruby_atomic.h. (rb_cv_gcc_sync_builtins): ditto. (HAVE_GETGRNAM): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-11Merges a patch form naclports.yugui
* configure.in (RUBY_NACL and others): Supports PNaCl. * dln.c: replace the old hacky dynamic loading over HTTP with nacl_io. * file.c: tenatively use access(2) instead of eaccess. (rb_file_load_ok): weaken with attribute but not by postprocess. * io.c (socket.h): now NaCl has socket.h (flock): disable here instead of nacl/ioctl.h * nacl/GNUmakefile.in (CC, LD, NM, AR, AS, RANLIB, OBJDUMP, OBJCOPY): respect path to them if they are absolute. This helps naclports to build ruby in their source tree. (PROGRAM_NMF, .SUFFIXES): support .pnexe for PNaCl. (ruby.o, file.o): move the hack to attributes in ruby.c and file.c * nacl/ioctl.h: removed. move the hack to io.c. * nacl/nacl-config.rb: support arm, pnacl and others. * nacl/pepper_main.c: support build in a naclports tree. * ruby.c (rb_load_file): weaken with attribute but not by postprocess. The patch is by sbc@google.com and the Native Client Authors. It is available at: * https://chromium.googlesource.com/external/naclports.git/+/873ca4910a5f9d4206306aacb4ed79c587c6a5f3/ports/ruby/nacl.patch git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-21file.c: clear tmp buffer on failuresnormal
Reduces GC malloc pressure (MAXPATHLEN is 4096 on my system), rb_find_file_safe hits this path at least twice every time ruby starts. * file.c (rb_find_file_ext_safe): clear tmp buffer on failure (rb_find_file_safe): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-28add some documents [ci skip]nobu
* bignum.c (Init_Bignum): [DOC] Bignum::GMP_VERSION. * complex.c (Init_Complex): [DOC] ignore an internal class. * dir.c (Init_Dir): [DOC] File::FNM_SYSCASE. * file.c (rb_file_exists_p): [DOC] File.exists? is deprecated. * object.c (rb_mod_initialize_clone): [DOC] ignore implementation detail. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-27* file.c: [DOC] Clarify how File.file? handles symbolic links. Alsozzak
cleaned up the rdoc style for this method, more to follow. Originally reported by Michael Renner [Bug #10067] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-06* file.c, ext/pathname/pathname.c: [DOC] correct position of method rdoc.ktsj
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-30* file.c: [DOC] document File.join returns a string.hsbt
Contributed by @dapplebeforedawn. [fix GH-646] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-18constify parametersnobu
* include/ruby/intern.h: constify `argv` parameters. * include/ruby/ruby.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-12file.c: shrink expanded pathnobu
* file.c (expand_path): shrink expanded path which no longer needs rooms to append. [ruby-core:63114] [Bug #9934] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-02encoding.h: constify rb_encodingnobu
* include/ruby/encoding.h: constify `rb_encoding` itself, not only arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-01constify rb_encoding and OnigEncodingnobu
* include/ruby/encoding.h: constify `rb_encoding` arguments. * include/ruby/oniguruma.h: constify `OnigEncoding` arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-22file.c: birthtime on Windowsnobu
* file.c (stat_birthtime): `ctime` is actually `created time` on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-22* file.c (stat_birthtime): add birthtime support [Feature #9647]naruse
* file.c (rb_stat_birthtime): add File::Stat.birthtime * file.c (rb_file_s_birthtime): add File.birthtime * file.c (rb_file_birthtime): add File#birthtime * configure.in: check struct stat.st_birthtimespec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-22revert File::Statfs [Feature #9772]naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-05 * file.c (rb_f_test): removed meaningless "case 'a'".tadf
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-02* file.c (HAVE_STRUCT_STATVFS_F_BASETYPE): File::Statfs#fstypenamengoto
is supported on AIX, HP-UX, and Solaris, by using the value of struct statvfs.f_basetype. * configure.in (HAVE_STRUCT_STATVFS_F_BASETYPE): check struct statvfs.f_basetype which is available on AIX, HP-UX, and Solaris. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-01add indentkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-01* file.c: Change AND condition to nested condition.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-30* file.c (FSTATFS): check availability of struct statfs andngoto
struct statvfs in addition to fstatfs(2) and fstatvfs(2). This fixes error in Solaris. [Bug #9788] [ruby-dev:48145] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28new macros for statfs_tkazu
* file.c (HAVE_STRUCT_STATFS_T_F_FSTYPENAME): Add new macro for statfs_t. * file.c (HAVE_STRUCT_STATFS_T_F_TYPE): ditto. * file.c (rb_io_statfs): check FSTATFS macro only instead of HAVE_FSTATFS and HAVE_FSTATVFS. * file.c (statfs_type): use new macro. * file.c (statfs_fstypename): ditto. * file.c (statfs_inspect): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28fix preprocessor conditionkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28file.c: fix typonobu
* file.c (FSTATFS): fix typo and commit miss. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28file.c: fix errors on Windowsnobu
* file.c (rb_io_statfs, rb_statfs_init, statfs_inspect): fix compilation errors on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28* configure.in (HAVE_STRUCT_STATFS_F_TYPE): check struct statfs.f_typenaruse
to support OpenBSD. * file.c (statfs_type): use above macro to switch. * file.c (statfs_inspect): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28* configure.in: check struct statvfs and struct statvfs.f_fstypename.naruse
* configure.in: on NetBSD fstatfs is obsoleted. * file.c: support NetBSD for File::Statfs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-24* file.c (statfs_inspect): suppress warnings.naruse
assume those values won't be larger than LONG_LONG_MAX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-24file.c: statfs_inspectnobu
* file.c (statfs_inspect): add File::Statfs#inspect method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-23* file.c (statfs_fsid): remove statfs.f_fsid because it doesn't returnnaruse
meaningful value portably. http://togetter.com/li/658517 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-23file.c: unpack in binarynobu
* file.c (statfs_fsid): convert with rb_integer_unpack. * configure.in: fsid_t is no longer used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-23file.c: fsid_t may not be definednobu
* configure.in: check if fsid_t is defined. * file.c (statfs_fsid): fsid_t may not be defined, assume long in that case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22* win32/win32.c, include/ruby/win32.h (ustatfs): implementation ofusa
statfs(2) clone. [EXPERIMENTAL] * file.c (rb_io_statfs): use above function. * configure.in, win32/Makefile.sub (struct statfs): available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22* file.c (rb_io_stafs): use statfs(2) if fstatfs(2) is unavailable.usa
* configure.in (fstatfs): check it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22file.c: suppress a warningnobu
* file.c (statfs_fsid): use union to suppress strict-aliasing warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22* file.c (rb_io_statfs): need to define even if the system doesn't haveusa
fstatfs(2). * test/ruby/test_file.rb (TestFile#test_statfs): skip if IO#stafs is not implemented. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22define File::Statfs only if HAVE_STRUCT_STATFSnaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22fix typonaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-22* file.c: newly added a class File::Statfs. (experimental)naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-28* file.c: [DOC] Add more documentation for File.basename by @avdi [fix ↵hsbt
GH-550][ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-01* file.c (rb_f_test): [DOC] refer to 'character' instead of 'integer'charliesome
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-09* array.c: rdoc clarification for <=>marcandre
* file.c: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25file.c: to_uid and to_gidnobu
* file.c (to_uid, to_gid): extract from rb_file_s_chown, rb_file_chown, and rb_file_s_lchown. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25file.c: proper typesnobu
* file.c (rb_file_chown): use proper configured types, not plain int. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21file.c: destination path onlynobu
* file.c: remove unnecessary the source path from EEXIST error messages and show the destination path only. [ruby-core:59202] [Feature #9263] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26file.c: fix buffer overflownobu
* file.c (rb_readlink): fix buffer overflow on a long symlink. since rb_str_modify_expand() expands from its length but not its capacity, need to set the length properly for each expansion. [ruby-core:58592] [Bug #9157] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-08file.c: remove unnecessary declarationnobu
* file.c (GetLastError): already defined in windows.h on nowadays cygwin, and caused the confliction with the system provided definition on cygwin64. by @kou1okada [Fixes GH-433]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-29* add RUBY_TYPED_FREE_IMMEDIATELY to data types which only useko1
safe functions during garbage collection such as xfree(). On default, T_DATA objects are freed at same points as fianlizers. This approach protects issues such as reported by [ruby-dev:35578]. However, freeing T_DATA objects immediately helps heap usage. Most of T_DATA (in other words, most of dfree functions) are safe. However, we turned off RUBY_TYPED_FREE_IMMEDIATELY by default for safety. * cont.c: ditto. * dir.c: ditto. * encoding.c: ditto. * enumerator.c: ditto. * error.c: ditto. * file.c: ditto. * gc.c: ditto. * io.c: ditto. * iseq.c: ditto. * marshal.c: ditto. * parse.y: ditto. * proc.c: ditto. * process.c: ditto. * random.c: ditto. * thread.c: ditto. * time.c: ditto. * transcode.c: ditto. * variable.c: ditto. * vm.c: ditto. * vm_backtrace.c: ditto. * vm_trace.c: ditto. * ext/bigdecimal/bigdecimal.c: ditto. * ext/objspace/objspace.c: ditto. * ext/stringio/stringio.c: ditto. * ext/strscan/strscan.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e