Граф коммитов

296 Коммитов

Автор SHA1 Сообщение Дата
nobu 01b773a093 * load.c (rb_load_path), vm_core.h (rb_vm_t): moved to VM.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@16240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-30 09:03:03 +00:00
usa 915b5c5508 * file.c (eaccess): workaround for recent msvcrt's behavior.
[ruby-core:16460]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22 00:58:04 +00:00
nobu 5e433ffc6c * file.c (file_expand_path): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 06:19:28 +00:00
matz 755a86b87a * file.c (SET_EXTERNAL_ENCODING): avoid call rb_enc_check() on
half-baked result string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 13:45:26 +00:00
nobu 0ae6c7f816 * file.c (file_expand_path): set external encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-11 18:13:40 +00:00
nobu 23bb4d7898 * file.c (rb_file_s_basename, rb_file_s_dirname, rb_file_s_extname):
copy encoding.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-11 18:12:18 +00:00
nobu 31b604a3f3 * file.c (isdirsep): backslash is valid path separator on cygwin too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-08 09:51:00 +00:00
nobu 12551ae573 * file.c (rb_file_flock): returns false on EAGAIN if non-blocking.
[ruby-core:15795]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-05 08:53:08 +00:00
nobu 5848032ce5 * file.c (rb_file_flock): immediately returns on EAGAIN if
non-blocking.  [ruby-core:15672]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-28 02:43:59 +00:00
nobu 4804658649 * configure.in (ftruncate): check if available.
* file.c (rb_file_truncate): check if ftruncate instead of truncate.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-14 17:42:27 +00:00
nobu 3a9bf2f124 * file.c (rb_file_s_utime): inhibits with secure level 2 or higher.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-14 07:02:54 +00:00
naruse 998113d62f * file.c (lchmod_internal): fix warning cast from pointer to integer of
different size.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-08 16:10:27 +00:00
naruse 42dcda08ae * string.c (rb_str_usascii_new{,2}: defined.
(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: svn+ssh://ci.ruby-lang.org/ruby/trunk@15244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-25 16:40:02 +00:00
nobu 2402ecabb0 * file.c (sys_fail2): get rid of unlimited alloca.
* io.c (mode_enc, pipe_open, rb_io_s_popen): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-16 05:55:22 +00:00
akr 6cdef2dc7e * $Date$ keyword removed to avoid inclusion of locale dependent
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
akr 041e829127 * include/ruby/encoding.h (rb_isascii): defined.
(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: svn+ssh://ci.ruby-lang.org/ruby/trunk@14829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-01 12:24:04 +00:00
matz bda85cb021 * file.c (Init_File): File.exists? revived.
* dir.c (Init_Dir): Dir.exists? again.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 03:34:26 +00:00
akr b92cee1ddb * re.c, regerror.c, string.c, parse.y, ruby.c, file.c:
use capital letter for \xHH notation.  [ruby-dev:32511]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-12 14:30:54 +00:00
akr f4592d7bb0 * re.c (rb_reg_expr_str): use \xHH instead of \OOO.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@14164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 21:48:05 +00:00
akr 3a8f7f1d7f * include/ruby/ruby.h (FilePathStringValue): defined. similar to
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@14155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 05:12:31 +00:00
nobu 54f236542d * file.c (rb_get_path): use the original object if to_path method is
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@14152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 03:18:21 +00:00
ko1 3453b2bd0e * gc.h, vm_core.h: decl of rb_gc_save_machine_context()
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 10:47:53 +00:00
akr 63a297994b * file.c (utime_internal): fallback utimensat to utimes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 09:48:00 +00:00
akr a070c4fbe3 * configure.in: check struct timespec, clock_gettime, utimensat,
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 09:09:38 +00:00
matz 7a978073c9 * parse.y (parser_yylex): should clear parser->tokp as well.
[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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 07:10:09 +00:00
nobu 6c77d58356 * file.c (rb_get_path): returns frozen string.
* file.c (rb_file_s_chown, rb_file_s_lchown): use uid_t and gid_t.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-20 02:49:22 +00:00
ko1 6244e502cc * thread.c: fix Mutex to be interruptable lock.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-27 16:48:14 +00:00
matz a25fbe3b3e * encoding.c: provide basic features for M17N.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
nobu 42850db14b * configure.in (group_member): check if presents.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 08:25:12 +00:00
nobu f1622c195d * file.c (rb_file_s_rename): deleted code to get rid of a bug of
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@12836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-22 05:33:54 +00:00
nobu 2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
nobu 62b3932c9c * file.c (Init_File): method definition mismatch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-18 16:04:22 +00:00
matz dcb9f150e5 * file.c (Init_File): add to_path method to File objects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-18 07:57:51 +00:00
nobu 7b0f246345 * file.c (rb_stat_uid, rb_stat_gid, eaccess): use rb_uid_t and
rb_gid_t instead of int.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-04 14:41:16 +00:00
nobu 9b7ecc68a9 * file.c (rb_stat_s_utime): fixed a commit miss for the platforms
where utimes() does not exist.

* lib/fileutils.rb (touch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-04 14:38:02 +00:00
nobu 15dabe8216 * file.c (rb_file_s_utime): allow nil to set the current time.
* lib/fileutils.rb (touch): ditto, and added :mtime and :nocreate
  options.  fixed: [ruby-talk:219037]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-03 13:37:02 +00:00
nobu 5b10c170e5 * file.c, gc.c, io.c, ruby.h, rubyio.h, win32/win32.h (rb_io_t):
renamed from OpenFile.

* ext/dl/cptr.c, ext/io/wait/wait.c, ext/openssl/ossl.h,
  ext/openssl/ossl_bio.c, ext/openssl/ossl_ssl.c, ext/pty/pty.c,
  ext/readline/readline.c, ext/socket/socket.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 10:30:50 +00:00
nobu 8ac59769bc * file.c (rb_thread_flock, rb_file_flock): use UBF feature.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 09:45:41 +00:00
usa 61fbdef349 * file.c (rb_find_file): should not call fpath_check() with NULL.
fixed: [ruby-core:09867]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-09 08:50:04 +00:00
matz 7c96418526 * object.c (Init_Object): new method Dir.exist?(path).
[ruby-core:09663]

* file.c (Init_File): remove File.exists?; use File.exist?
  instead.

* file.c: rename functions to test_* to rb_file_*_p.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-07 15:18:14 +00:00
matz 5dd8f6e20c * file.c (test_grpowned, rb_stat_grpowned): should honor
supplementary group IDs.  [ruby-core:09546]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-22 08:37:11 +00:00
nobu b96af08add * file.c (rb_path_end): skip root directory. fixed: [ruby-core:08913]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-25 12:25:29 +00:00
matz 5cc2093ccd * hash.c (recursive_hash): remove unused local variable.
* parse.y (parser_yylex): ditto.

* parse.y (rb_gc_mark_symbols): fix unmatched prototype .

* file.c (rb_get_path): check NUL byte in the path string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-25 05:57:37 +00:00
nobu 352303c906 * file.c: ISPRINT() needs ctype.h
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-10 00:41:44 +00:00
matz 0f785c3840 * file.c (rb_f_test): test(0) should not have any special
meaning.  [ruby-dev:29425]

* file.c (rb_f_test): properer error message.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-09 16:19:33 +00:00
nobu 585c61691e * file.c (path_check_0, fpath_check): disable path check on cygwin.
[ruby-talk:213074]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-07 14:28:36 +00:00
nobu b9a508bb96 * file.c (path_check_0): check if sticky bit is set on parent
directories for executable path.  fixed: [ruby-dev:29415]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-04 20:50:13 +00:00
matz 2156870525 * ruby.h (struct RArray): embed small arrays.
(RARRAY_LEN): defined for accessing array members.
  (RARRAY_PTR): ditto.

* array.c: use RARRAY_LEN and RARRAY_PTR.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-02 14:42:08 +00:00
usa 5b5e4a6fc1 * file.c (test_identical, rb_file_s_truncate): use RSTRING_PTR and
RSTRING_STR.

* io.c (pipe_open, rb_io_reopen): ditto.

* process.c (proc_spawn_n, rb_spawn): ditto.

* util.c (ruby_add_suffix): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 11:24:44 +00:00
matz 54af80844f * ruby.h (struct RString): embed small strings.
(RSTRING_LEN): defined for accessing string members.
  (RSTRING_PTR): ditto.

* string.c: use RSTRING_LEN and RSTRING_PTR.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 10:47:44 +00:00