summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-07-03 02:44:05 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-07-03 02:44:05 +0000
commit83c7e46aa795f949122e0a8cafb3fc905992ddd2 (patch)
tree2158c7305470a7ae996841c5d4b940f7f0efe1f3
parent1d15cf4bebc379a0f70306ae165680ffe4a12d87 (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--ChangeLog4
-rw-r--r--dir.c17
-rw-r--r--version.h8
3 files changed, 15 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 1b1e238d9d..60b2350065 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/dir.c b/dir.c
index 404dc0d42f..2cc1226d4d 100644
--- a/dir.c
+++ b/dir.c
@@ -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);
diff --git a/version.h b/version.h
index d2ca79460a..889e061956 100644
--- a/version.h
+++ b/version.h
@@ -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"