* dir.c (dir_initialize): rename option name of Dir.open

from :external_encoding to :encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2008-09-08 13:32:53 +00:00
parent d166d0be91
commit be2fc605fc
2 changed files with 21 additions and 16 deletions

View File

@ -1,3 +1,8 @@
Mon Sep 8 22:30:03 2008 NARUSE, Yui <naruse@ruby-lang.org>
* dir.c (dir_initialize): rename option name of Dir.open
from :external_encoding to :encoding.
Mon Sep 8 22:16:20 2008 Takeyuki FUJIOKA <xibbar@ruby-lang.org> Mon Sep 8 22:16:20 2008 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
* lib/cgi.rb : obsolete regex "n" option. [ruby-dev:36130] * lib/cgi.rb : obsolete regex "n" option. [ruby-dev:36130]

30
dir.c
View File

@ -290,7 +290,7 @@ VALUE rb_cDir;
struct dir_data { struct dir_data {
DIR *dir; DIR *dir;
VALUE path; VALUE path;
rb_encoding *extenc; rb_encoding *enc;
}; };
static void static void
@ -318,7 +318,7 @@ dir_s_alloc(VALUE klass)
dirp->dir = NULL; dirp->dir = NULL;
dirp->path = Qnil; dirp->path = Qnil;
dirp->extenc = NULL; dirp->enc = NULL;
return obj; return obj;
} }
@ -333,26 +333,26 @@ static VALUE
dir_initialize(int argc, VALUE *argv, VALUE dir) dir_initialize(int argc, VALUE *argv, VALUE dir)
{ {
struct dir_data *dp; struct dir_data *dp;
rb_encoding *extencoding; rb_encoding *fsenc;
VALUE dirname, opt; VALUE dirname, opt;
static VALUE sym_extenc; static VALUE sym_enc;
if (!sym_extenc) { if (!sym_enc) {
sym_extenc = ID2SYM(rb_intern("external_encoding")); sym_enc = ID2SYM(rb_intern("encoding"));
} }
extencoding = rb_filesystem_encoding(); fsenc = rb_filesystem_encoding();
rb_scan_args(argc, argv, "11", &dirname, &opt); rb_scan_args(argc, argv, "11", &dirname, &opt);
if (!NIL_P(opt)) { if (!NIL_P(opt)) {
VALUE v, extenc=Qnil; VALUE v, enc=Qnil;
opt = rb_convert_type(opt, T_HASH, "Hash", "to_hash"); opt = rb_convert_type(opt, T_HASH, "Hash", "to_hash");
v = rb_hash_aref(opt, sym_extenc); v = rb_hash_aref(opt, sym_enc);
if (!NIL_P(v)) extenc = v; if (!NIL_P(v)) enc = v;
if (!NIL_P(extenc)) { if (!NIL_P(enc)) {
extencoding = rb_to_encoding(extenc); fsenc = rb_to_encoding(enc);
} }
} }
@ -362,7 +362,7 @@ dir_initialize(int argc, VALUE *argv, VALUE dir)
if (dp->dir) closedir(dp->dir); if (dp->dir) closedir(dp->dir);
dp->dir = NULL; dp->dir = NULL;
dp->path = Qnil; dp->path = Qnil;
dp->extenc = extencoding; dp->enc = fsenc;
dp->dir = opendir(RSTRING_PTR(dirname)); dp->dir = opendir(RSTRING_PTR(dirname));
if (dp->dir == NULL) { if (dp->dir == NULL) {
if (errno == EMFILE || errno == ENFILE) { if (errno == EMFILE || errno == ENFILE) {
@ -494,7 +494,7 @@ dir_read(VALUE dir)
errno = 0; errno = 0;
dp = readdir(dirp->dir); dp = readdir(dirp->dir);
if (dp) { if (dp) {
return dir_enc_str_new(dp->d_name, NAMLEN(dp), dirp->extenc); return dir_enc_str_new(dp->d_name, NAMLEN(dp), dirp->enc);
} }
else if (errno == 0) { /* end of stream */ else if (errno == 0) { /* end of stream */
return Qnil; return Qnil;
@ -532,7 +532,7 @@ dir_each(VALUE dir)
GetDIR(dir, dirp); GetDIR(dir, dirp);
rewinddir(dirp->dir); rewinddir(dirp->dir);
for (dp = readdir(dirp->dir); dp != NULL; dp = readdir(dirp->dir)) { for (dp = readdir(dirp->dir); dp != NULL; dp = readdir(dirp->dir)) {
rb_yield(dir_enc_str_new(dp->d_name, NAMLEN(dp), dirp->extenc)); rb_yield(dir_enc_str_new(dp->d_name, NAMLEN(dp), dirp->enc));
if (dirp->dir == NULL) dir_closed(); if (dirp->dir == NULL) dir_closed();
} }
return dir; return dir;