diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-07-03 02:44:05 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-07-03 02:44:05 +0000 |
commit | 83c7e46aa795f949122e0a8cafb3fc905992ddd2 (patch) | |
tree | 2158c7305470a7ae996841c5d4b940f7f0efe1f3 | |
parent | 1d15cf4bebc379a0f70306ae165680ffe4a12d87 (diff) |
merge revision(s) 34348:
* dir.c (dir_chdir, check_dirname): get rid of optimization-out.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@36278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | dir.c | 17 | ||||
-rw-r--r-- | version.h | 8 |
3 files changed, 15 insertions, 14 deletions
@@ -1,3 +1,7 @@ +Tue Jul 3 11:43:46 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * dir.c (dir_chdir, check_dirname): get rid of optimization-out. + Thu Jun 28 17:57:49 2012 NAKAMURA Usaku <usa@ruby-lang.org> * win32/win32.c (is_socket, is_console): add prototypes to fix compile @@ -762,7 +762,6 @@ dir_close(VALUE dir) static void dir_chdir(VALUE path) { - path = rb_str_encode_ospath(path); if (chdir(RSTRING_PTR(path)) < 0) rb_sys_fail_path(path); } @@ -845,6 +844,7 @@ dir_s_chdir(int argc, VALUE *argv, VALUE obj) rb_secure(2); if (rb_scan_args(argc, argv, "01", &path) == 1) { FilePathValue(path); + path = rb_str_encode_ospath(path); } else { const char *dist = getenv("HOME"); @@ -862,9 +862,8 @@ dir_s_chdir(int argc, VALUE *argv, VALUE obj) if (rb_block_given_p()) { struct chdir_data args; - char *cwd = my_getcwd(); - args.old_path = rb_tainted_str_new2(cwd); xfree(cwd); + args.old_path = rb_str_encode_ospath(rb_dir_getwd()); args.new_path = path; args.done = FALSE; return rb_ensure(chdir_yield, (VALUE)&args, chdir_restore, (VALUE)&args); @@ -909,14 +908,16 @@ dir_s_getwd(VALUE dir) static void check_dirname(volatile VALUE *dir) { + VALUE d = *dir; char *path, *pend; rb_secure(2); - FilePathValue(*dir); - path = RSTRING_PTR(*dir); + FilePathValue(d); + path = RSTRING_PTR(d); if (path && *(pend = rb_path_end(rb_path_skip_prefix(path)))) { - *dir = rb_str_new(path, pend - path); + d = rb_str_subseq(d, 0, pend - path); } + *dir = rb_str_encode_ospath(d); } #if defined(HAVE_CHROOT) @@ -933,8 +934,6 @@ static VALUE dir_s_chroot(VALUE dir, VALUE path) { check_dirname(&path); - - path = rb_str_encode_ospath(path); if (chroot(RSTRING_PTR(path)) == -1) rb_sys_fail_path(path); @@ -973,7 +972,6 @@ dir_s_mkdir(int argc, VALUE *argv, VALUE obj) } check_dirname(&path); - path = rb_str_encode_ospath(path); if (mkdir(RSTRING_PTR(path), mode) == -1) rb_sys_fail_path(path); @@ -993,7 +991,6 @@ static VALUE dir_s_rmdir(VALUE obj, VALUE dir) { check_dirname(&dir); - dir = rb_str_encode_ospath(dir); if (rmdir(RSTRING_PTR(dir)) < 0) rb_sys_fail_path(dir); @@ -1,10 +1,10 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 243 +#define RUBY_PATCHLEVEL 244 -#define RUBY_RELEASE_DATE "2012-06-28" +#define RUBY_RELEASE_DATE "2012-07-03" #define RUBY_RELEASE_YEAR 2012 -#define RUBY_RELEASE_MONTH 6 -#define RUBY_RELEASE_DAY 28 +#define RUBY_RELEASE_MONTH 7 +#define RUBY_RELEASE_DAY 3 #include "ruby/version.h" |