summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-01-09 11:52:26 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-01-09 11:52:26 +0000
commit7295523013b2352dd13411d0b59a490b026825fd (patch)
tree133f0d63f57d1fb26ad2d829aafa9d1393e2f3d4
parentb3a71949487cba458f3b6882fecb1dcd54c8a0d6 (diff)
r11523@ruby: shyouhei | 2007-01-09 15:57:58 +0900
* ext/etc/etc.c (etc_getpwuid, etc_getgrgid): fix to correctly convert uid/gid from VALUE. * ext/etc/etc.c (etc_getpwuid): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_5@11521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--ext/etc/etc.c8
-rw-r--r--ext/etc/extconf.rb4
-rw-r--r--version.h12
4 files changed, 20 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index d78082ed8c..974c94bdcc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Jan 9 12:29:20 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/etc/etc.c (etc_getpwuid, etc_getgrgid): fix to correctly
+ convert uid/gid from VALUE.
+
+ * ext/etc/etc.c (etc_getpwuid): ditto.
+
Mon Dec 25 20:08:28 2006 URABE Shyouhei <shyouhei@ruby-lang.org>
* ext/openssl/ossl.h: fixed compilation problem on gcc 3.2.
diff --git a/ext/etc/etc.c b/ext/etc/etc.c
index c79640d02a..447d833bc7 100644
--- a/ext/etc/etc.c
+++ b/ext/etc/etc.c
@@ -126,12 +126,12 @@ etc_getpwuid(argc, argv, obj)
{
#if defined(HAVE_GETPWENT)
VALUE id;
- int uid;
+ uid_t uid;
struct passwd *pwd;
rb_secure(4);
if (rb_scan_args(argc, argv, "01", &id) == 1) {
- uid = NUM2INT(id);
+ uid = PW_VAL2UID(id);
}
else {
uid = getuid();
@@ -333,11 +333,11 @@ etc_getgrgid(obj, id)
VALUE obj, id;
{
#ifdef HAVE_GETGRENT
- int gid;
+ gid_t gid;
struct group *grp;
rb_secure(4);
- gid = NUM2INT(id);
+ gid = getgid();
grp = getgrgid(gid);
if (grp == 0) rb_raise(rb_eArgError, "can't find group for %d", gid);
return setup_group(grp);
diff --git a/ext/etc/extconf.rb b/ext/etc/extconf.rb
index 2496d36aa1..dbd0672545 100644
--- a/ext/etc/extconf.rb
+++ b/ext/etc/extconf.rb
@@ -35,7 +35,9 @@ if a or b or c
f = "U#{f}"
end
end
- $defs.push("-DPW_#{t.chomp('_t').upcase}2VAL=#{f}")
+ t = t.chomp('_t').upcase
+ $defs.push("-DPW_#{t}2VAL=#{f}")
+ $defs.push("-DPW_VAL2#{t}=#{f.sub(/([A-Z]+)2(NUM)/, '\22\1')}")
end
create_makefile("etc")
end
diff --git a/version.h b/version.h
index 20556e346e..abbb609270 100644
--- a/version.h
+++ b/version.h
@@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.5"
-#define RUBY_RELEASE_DATE "2006-12-25"
+#define RUBY_RELEASE_DATE "2007-01-09"
#define RUBY_VERSION_CODE 185
-#define RUBY_RELEASE_CODE 20061225
-#define RUBY_PATCHLEVEL 13
+#define RUBY_RELEASE_CODE 20070109
+#define RUBY_PATCHLEVEL 14
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 5
-#define RUBY_RELEASE_YEAR 2006
-#define RUBY_RELEASE_MONTH 12
-#define RUBY_RELEASE_DAY 25
+#define RUBY_RELEASE_YEAR 2007
+#define RUBY_RELEASE_MONTH 1
+#define RUBY_RELEASE_DAY 9
RUBY_EXTERN const char ruby_version[];
RUBY_EXTERN const char ruby_release_date[];