summaryrefslogtreecommitdiff
path: root/ext/etc/etc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/etc/etc.c')
-rw-r--r--ext/etc/etc.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/ext/etc/etc.c b/ext/etc/etc.c
index c10680c7d3..e5f69f9285 100644
--- a/ext/etc/etc.c
+++ b/ext/etc/etc.c
@@ -125,7 +125,7 @@ static VALUE
etc_passwd(obj)
VALUE obj;
{
-#if defined(HAVE_GETPWENT)
+#ifdef HAVE_GETPWENT
struct passwd *pw;
if (rb_iterator_p()) {
@@ -136,12 +136,11 @@ etc_passwd(obj)
endpwent();
return obj;
}
- pw = getpwent();
- if (pw == 0) rb_raise(rb_eRuntimeError, "can't fetch next -- /etc/passwd");
- return setup_passwd(pw);
-#else
- return Qnil;
+ if (pw = getpwent()) {
+ return setup_passwd(pw);
+ }
#endif
+ return Qnil;
}
#ifdef HAVE_GETGRENT
@@ -214,10 +213,11 @@ etc_group(obj)
endgrent();
return obj;
}
- return setup_group(getgrent());
-#else
- return Qnil;
+ if (grp = getgrent()) {
+ return setup_group(grp);
+ }
#endif
+ return Qnil;
}
static VALUE mEtc;