summaryrefslogtreecommitdiffstats
path: root/file.c
Commit message (Collapse)AuthorAgeFilesLines
* * file.c (file_expand_path): no need to expand root path which has nonobu2008-06-141-3/+3
| | | | | | | short file name. [ruby-dev:35095] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.nobu2008-06-091-4/+3
| | | | | | | * *.c: no cache in init functions. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c,ko12008-06-081-9/+9
| | | | | | | | | | | | | | | | | | | enumerator.c (enumerator_allocate), eval_jump.c, file.c, hash.c, io.c, load.c, pack.c, proc.c, random.c, re.c, ruby.c, st.c, string.c, thread.c, thread_pthread.c, time.c, util.c, variable.c, vm.c, gc.c: allocated memory objects by xmalloc (ruby_xmalloc) should be freed by xfree (ruby_xfree). * ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c, ext/gdbm/gdbm.c, ext/json/ext/parser/parser.c, ext/json/ext/parser/unicode.c, ext/openssl/ossl_cipher.c, ext/openssl/ossl_hmac.c, ext/openssl/ossl_pkey_ec.c, ext/sdbm/init.c, ext/strscan/strscan.c, ext/zlib/zlib.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (file_expand_path): fix for non-existent files and SFN ofnobu2008-06-031-19/+16
| | | | | | | symlinks. [ruby-talk:303736] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * suppress warnings on cygwin, mingw and mswin.nobu2008-06-011-9/+9
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (BUFCHECK): wrong condition. [ruby-core:16921]usa2008-05-271-4/+4
| | | | | | | | * file.c (file_expand_buf): shouldn't use buflen for length of string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (BUFCHECK): no resize if enough room.nobu2008-05-261-12/+10
| | | | | | | * file.c (file_expand_path): use BUFCHECK. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (file_expand_path): add more space for '/'.usa2008-05-261-1/+6
| | | | | | | | | * file.c (file_expand_path): should reset address of p after calling rb_str_resize(). [ruby-dev:34800] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (ntfs_tail): filename which starts with '.' is valid.usa2008-05-261-1/+2
| | | | | | | | * file.c (file_expand_path): cygwin symlink support. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (file_expand_path): fix for short file name on Cygwin.nobu2008-05-171-4/+8
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_s_extname): first dot is not an extension name.nobu2008-05-171-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (file_expand_path): support for alternative data streamnobu2008-05-151-25/+182
| | | | | | | | | | | and ignored trailing garbages of NTFS. * file.c (rb_file_s_basename): ditto. * file.c (rb_file_s_extname): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_find_file_ext): guard load_path from GC.akr2008-05-081-0/+1
| | | | | | | | | gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) optimizes load_path by holding only RARRAY_LEN(load_path) and RARRAY_PTR(load_path) in registers on IA64 GNU/Linux Etch. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_find_exe_r, dln_find_file_r): reentrant versions.nobu2008-05-071-2/+4
| | | | | | | | | * file.c (rb_find_file_ext, rb_find_file), process.c (proc_exec_v), (rb_proc_exec, proc_spawn_v, proc_spawn), ruby.c (process_options): use reentrant versions. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * load.c (rb_load_path), vm_core.h (rb_vm_t): moved to VM.nobu2008-04-301-11/+11
| | | | | | | | | | | | | | * load.c (rb_get_load_path): returns absolute load path. * load.c (load_path_getter): $LOAD_PATH getter. * file.c (rb_find_file_ext, rb_find_file), ruby.c (push_include, ruby_init_loadpath): use the accessor. * vm.c (rb_vm_mark): mark load_path. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (eaccess): workaround for recent msvcrt's behavior.usa2008-04-221-2/+2
| | | | | | | | [ruby-core:16460] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (file_expand_path): constified.nobu2008-04-201-3/+5
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (SET_EXTERNAL_ENCODING): avoid call rb_enc_check() onmatz2008-04-141-2/+1
| | | | | | half-baked result string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (file_expand_path): set external encoding.nobu2008-04-111-1/+11
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_s_basename, rb_file_s_dirname, rb_file_s_extname):nobu2008-04-111-0/+3
| | | | | | | copy encoding. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (isdirsep): backslash is valid path separator on cygwin too.nobu2008-03-081-7/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_flock): returns false on EAGAIN if non-blocking.nobu2008-03-051-2/+1
| | | | | | | [ruby-core:15795] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_flock): immediately returns on EAGAIN ifnobu2008-02-281-2/+4
| | | | | | | non-blocking. [ruby-core:15672] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (ftruncate): check if available.nobu2008-02-141-1/+1
| | | | | | | * file.c (rb_file_truncate): check if ftruncate instead of truncate. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_s_utime): inhibits with secure level 2 or higher.nobu2008-02-141-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (lchmod_internal): fix warning cast from pointer to integer ofnaruse2008-02-081-1/+1
| | | | | | different size. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_usascii_new{,2}: defined.naruse2008-01-251-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (rb_str_new): set US-ASCII and ENC_CODERANGE_7BIT when empty string. * encoding.c (rb_usascii_encoding, rb_usascii_encindex): defined. (rb_enc_inspect, enc_name, rb_locale_charmap, rb_enc_name_list_i): use rb_str_ascii_new. * array.c (recursive_join, inspect_ary): ditto. * object.c (nil_to_s, nil_inspect, true_to_s, false_to_s, rb_mod_to_s): ditto. * hash.c (inspect_hash, rb_hash_inspect, rb_f_getenv, env_fetch, env_clear, env_to_s, env_inspect): ditto. * numeric.c (flo_to_s, int_chr, rb_fix2str): ditto. * bignum.c (rb_big2str): ditto. * file.c (rb_file_ftype, rb_file_s_dirname, rb_file_s_extname, file_inspect_join, Init_file): ditto. * test/ruby/test_ruby_m17n.rb: add checks for encoding of string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (sys_fail2): get rid of unlimited alloca.nobu2008-01-161-3/+23
| | | | | | | * io.c (mode_enc, pipe_open, rb_io_s_popen): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * $Date$ keyword removed to avoid inclusion of locale dependentakr2008-01-061-1/+0
| | | | | | | string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/encoding.h (rb_isascii): defined.akr2008-01-011-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (rb_isalnum): ditto. (rb_isalpha): ditto. (rb_isblank): ditto. (rb_iscntrl): ditto. (rb_isdigit): ditto. (rb_isgraph): ditto. (rb_islower): ditto. (rb_isprint): ditto. (rb_ispunct): ditto. (rb_isspace): ditto. (rb_isupper): ditto. (rb_isxdigit): ditto. (rb_tolower): ditto. (rb_toupper): ditto. * include/ruby/st.h (st_strcasecmp): declared. (st_strncasecmp): ditto. * st.c (type_strcasehash): use st_strcasecmp instead of strcasecmp. (st_strcasecmp): defined. (st_strncasecmp): ditto. * include/ruby/ruby.h: include include/ruby/encoding.h. (ISASCII): use rb_isascii. (ISPRINT): use rb_isprint. (ISSPACE): use rb_isspace. (ISUPPER): use rb_isupper. (ISLOWER): use rb_islower. (ISALNUM): use rb_isalnum. (ISALPHA): use rb_isalpha. (ISDIGIT): use rb_isdigit. (ISXDIGIT): use rb_isxdigit. (TOUPPER): defined. (TOLOWER): ditto. (STRCASECMP): ditto. (STRNCASECMP): ditto. * dir.c, encoding.c, file.c, hash.c, process.c, ruby.c, time.c, transcode.c, ext/readline/readline.c: use locale insensitive functions. [ruby-core:14662] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (Init_File): File.exists? revived.matz2007-12-211-1/+3
| | | | | | * dir.c (Init_Dir): Dir.exists? again. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * re.c, regerror.c, string.c, parse.y, ruby.c, file.c:akr2007-12-121-1/+1
| | | | | | | | use capital letter for \xHH notation. [ruby-dev:32511] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * re.c (rb_reg_expr_str): use \xHH instead of \OOO.akr2007-12-091-1/+1
| | | | | | | | | | | | | | | | | | * regerror.c (to_ascii): ditto. (onig_snprintf_with_pattern): ditto. (onig_snprintf_with_pattern): ditto. * string.c (rb_str_inspect): ditto. (rb_str_dump): ditto. * parse.y (parser_yylex): ditto. * ruby.c (proc_options): ditto. * file.c (rb_f_test): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (FilePathStringValue): defined. similar toakr2007-12-091-7/+21
| | | | | | | | | | | | | | | | | FilePathValue but no taint check. * file.c (rb_get_path_no_checksafe): implementation of FilePathStringValue. (rb_file_s_basename): use FilePathStringValue. (rb_file_s_dirname): ditto. (rb_file_s_extname): ditto. (rb_file_s_split): ditto. (rb_file_join): ditto. * dir.c (file_s_fnmatch): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_get_path): use the original object if to_path method isnobu2007-12-091-0/+3
| | | | | | | | | | not defined. [ruby-dev:32473] * io.c (rb_f_open): call to_open on non-string objects, instead of to_str. [ruby-dev:32473] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.h, vm_core.h: decl of rb_gc_save_machine_context()ko12007-11-201-1/+1
| | | | | | | | | | | | | | should be at vm_core.h. * include/ruby/ruby.h, intern.h: remove type rb_thread_t. * include/ruby/intern.h: change rb_unblock_function_t, rb_unblock_function_t. * file.c, process.c: apply above changes. * thread.c, thread_pthread.ci, thread_win32.ci: ditto. * io.c: support blocking open (2). [ruby-core:13614] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (utime_internal): fallback utimensat to utimes.akr2007-11-191-10/+18
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: check struct timespec, clock_gettime, utimensat,akr2007-11-191-59/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | struct stat.st_atim, struct stat.st_atimespec, struct stat.st_atimensec, struct stat.st_mtim, struct stat.st_mtimespec, struct stat.st_mtimensec, struct stat.st_ctim, struct stat.st_ctimespec, struct stat.st_ctimensec. * include/ruby/missing.h: provide struct timespec if not available. * time.c: support nanosecond-resolution using struct timespec. * include/ruby/intern.h: provide rb_time_nano_new. * file.c (utime_internal): use utimensat if available. (rb_file_s_utime): refactored. (rb_f_test): use stat_atime, stat_mtime, stat_ctime. (rb_stat_cmp): check tv_nsec. (stat_atimespec): new function. (stat_atime): ditto. (stat_mtimespec): ditto. (stat_mtime): ditto. (stat_ctimespec): ditto. (stat_ctime): ditto. (rb_stat_atime): use stat_atime. (rb_file_s_atime): ditto. (rb_file_atime): ditto. (rb_stat_mtime): use stat_mtime. (rb_file_s_mtime): ditto. (rb_file_mtime): ditto. (rb_file_ctime): use stat_ctime. (rb_file_s_ctime): ditto. (rb_stat_ctime): ditto. * variable.c (rb_copy_generic_ivar): clear clone's instance variables if obj has no instance variable. * marshal.c (w_object): dump instance variables of generated string for TYPE_USERDEF, even if original object has instance variables. * lib/time.rb (Time#xmlschema): use nsec instead of usec. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_yylex): should clear parser->tokp as well.matz2007-11-191-9/+9
| | | | | | | | | | | | | | [ruby-dev:32250] * parse.y: remove NEED_ASSOC that break test_parser_events. * parse.y (parser_yylex): should not decrement line numbers at the end of file. * file.c (rb_find_file_ext): search .rb files first through in the loadpath. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_get_path): returns frozen string.nobu2007-10-201-7/+8
| | | | | | | * file.c (rb_file_s_chown, rb_file_s_lchown): use uid_t and gid_t. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c: fix Mutex to be interruptable lock.ko12007-08-271-1/+1
| | | | | | | | | | | | | | | | | | | * thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h: prepare native_cond_*() which are based on pthread_cond_*() spec. * prelude.rb: fix Mutex#synchronize method. * vm_core.h, include/ruby/intern.h: change unblock function interface (to pass some user data). * file.c, process.c: ditto. * benchmark/bm_vm2_mutex.rb: add a benchmark for mutex. * benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex with contension. * benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby. * test/ruby/test_thread.rb: add a test. * common.mk: fix benchmark options. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c: provide basic features for M17N.matz2007-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse.y: encoding aware parsing. * parse.y (pragma_encoding): encoding specification pragma. * parse.y (rb_intern3): encoding specified symbols. * string.c (rb_str_length): length based on characters. for older behavior, bytesize method added. * string.c (rb_str_index_m): index based on characters. rindex as well. * string.c (succ_char): encoding aware succeeding string. * string.c (rb_str_reverse): reverse based on characters. * string.c (rb_str_inspect): encoding aware string description. * string.c (rb_str_upcase_bang): encoding aware case conversion. downcase, capitalize, swapcase as well. * string.c (rb_str_tr_bang): tr based on characters. delete, squeeze, tr_s, count as well. * string.c (rb_str_split_m): split based on characters. * string.c (rb_str_each_line): encoding aware each_line. * string.c (rb_str_each_char): added. iteration based on characters. * string.c (rb_str_strip_bang): encoding aware whitespace stripping. lstrip, rstrip as well. * string.c (rb_str_justify): encoding aware justifying (ljust, rjust, center). * string.c (str_encoding): get encoding attribute from a string. * re.c (rb_reg_initialize): encoding aware regular expression * sprintf.c (rb_str_format): formatting (i.e. length count) based on characters. * io.c (rb_io_getc): getc to return one-character string. for older behavior, getbyte method added. * ext/stringio/stringio.c (strio_getc): ditto. * io.c (rb_io_ungetc): allow pushing arbitrary string at the current reading point. * ext/stringio/stringio.c (strio_ungetc): ditto. * ext/strscan/strscan.c: encoding support. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (group_member): check if presents.nobu2007-08-231-0/+2
| | | | | | | | | | | * configure.in (XCFLAGS): add _GNU_SOURCE on linux. * file.c (group_member): use system routine if available. * process.c: moved _GNU_SOURCE macro to Makefile. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_s_rename): deleted code to get rid of a bug ofnobu2007-07-221-10/+5
| | | | | | | | | | | | | | | | | | | | | | | old Cygwin. * file.c (rb_file_truncate): added prototype of GetLastError() on cygwin. [ruby-dev:31239] * include/ruby/intern.h (is_ruby_native_thread): prototype. * missing/strftime.c (strftime): fix printf format and actual arguments. * ext/Win32API/Win32API.c (Win32API_initialize): ditto. * ext/tk/tcltklib.c (ip_finalize): ditto. * ext/win32ole/win32ole.c (lcid_installed): ditto. * ext/socket/getnameinfo.c: include stdio.h always. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby: moved public headers.nobu2007-06-101-4/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (Init_File): method definition mismatch.nobu2007-05-181-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (Init_File): add to_path method to File objects.matz2007-05-181-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_stat_uid, rb_stat_gid, eaccess): use rb_uid_t andnobu2007-03-041-3/+3
| | | | | | | rb_gid_t instead of int. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_stat_s_utime): fixed a commit miss for the platformsnobu2007-03-041-5/+8
| | | | | | | | | where utimes() does not exist. * lib/fileutils.rb (touch): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_s_utime): allow nil to set the current time.nobu2007-03-031-4/+7
| | | | | | | | * lib/fileutils.rb (touch): ditto, and added :mtime and :nocreate options. fixed: [ruby-talk:219037] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e