register SV *sv;
struct passwd *pwent;
STRLEN n_a;
-#if defined(HAS_GETSPENT) || defined(HAS_GETSPNAM)
+# if defined(HAS_GETSPENT) || defined(HAS_GETSPNAM)
struct spwd *spwent = NULL;
-#endif
+# endif
if (which == OP_GPWNAM)
pwent = getpwnam(POPpx);
else if (which == OP_GPWUID)
pwent = getpwuid(POPi);
else
-#ifdef HAS_GETPWENT
+# ifdef HAS_GETPWENT
pwent = (struct passwd *)getpwent();
-#else
+# else
DIE(aTHX_ PL_no_func, "getpwent");
-#endif
+# endif
-#ifdef HAS_GETSPNAM
+# ifdef HAS_GETSPNAM
if (which == OP_GPWNAM) {
if (pwent)
spwent = getspnam(pwent->pw_name);
}
-# ifdef HAS_GETSPUID /* AFAIK there isn't any anywhere. --jhi */
+# ifdef HAS_GETSPUID /* AFAIK there isn't any anywhere. --jhi */
else if (which == OP_GPWUID) {
if (pwent)
spwent = getspnam(pwent->pw_name);
}
-# endif
-# ifdef HAS_GETSPENT
+# endif
+# ifdef HAS_GETSPENT
else
spwent = (struct spwd *)getspent();
+# endif
# endif
-#endif
EXTEND(SP, 10);
if (GIMME != G_ARRAY) {
PUSHs(sv = sv_newmortal());
if (pwent) {
if (which == OP_GPWNAM)
-#if Uid_t_sign <= 0
+# if Uid_t_sign <= 0
sv_setiv(sv, (IV)pwent->pw_uid);
-#else
+# else
sv_setuv(sv, (UV)pwent->pw_uid);
-#endif
+# endif
else
sv_setpv(sv, pwent->pw_name);
}
sv_setpv(sv, pwent->pw_name);
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWPASSWD
-# if defined(HAS_GETSPENT) || defined(HAS_GETSPNAM)
+# ifdef PWPASSWD
+# if defined(HAS_GETSPENT) || defined(HAS_GETSPNAM)
if (spwent)
sv_setpv(sv, spwent->sp_pwdp);
else
sv_setpv(sv, pwent->pw_passwd);
-# else
+# else
sv_setpv(sv, pwent->pw_passwd);
-# endif
-#endif
-#ifndef INCOMPLETE_TAINTS
+# endif
+# endif
+# ifndef INCOMPLETE_TAINTS
/* passwd is tainted because user himself can diddle with it. */
SvTAINTED_on(sv);
-#endif
+# endif
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#if Uid_t_sign <= 0
+# if Uid_t_sign <= 0
sv_setiv(sv, (IV)pwent->pw_uid);
-#else
+# else
sv_setuv(sv, (UV)pwent->pw_uid);
-#endif
+# endif
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#if Uid_t_sign <= 0
+# if Uid_t_sign <= 0
sv_setiv(sv, (IV)pwent->pw_gid);
-#else
+# else
sv_setuv(sv, (UV)pwent->pw_gid);
-#endif
+# endif
/* pw_change, pw_quota, and pw_age are mutually exclusive. */
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWCHANGE
+# ifdef PWCHANGE
sv_setiv(sv, (IV)pwent->pw_change);
-#else
-# ifdef PWQUOTA
+# else
+# ifdef PWQUOTA
sv_setiv(sv, (IV)pwent->pw_quota);
-# else
-# ifdef PWAGE
+# else
+# ifdef PWAGE
sv_setpv(sv, pwent->pw_age);
-# endif
-# endif
-#endif
+# endif
+# endif
+# endif
/* pw_class and pw_comment are mutually exclusive. */
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWCLASS
+# ifdef PWCLASS
sv_setpv(sv, pwent->pw_class);
-#else
-# ifdef PWCOMMENT
+# else
+# ifdef PWCOMMENT
sv_setpv(sv, pwent->pw_comment);
-# endif
-#endif
+# endif
+# endif
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWGECOS
+# ifdef PWGECOS
sv_setpv(sv, pwent->pw_gecos);
-#endif
-#ifndef INCOMPLETE_TAINTS
+# endif
+# ifndef INCOMPLETE_TAINTS
/* pw_gecos is tainted because user himself can diddle with it. */
SvTAINTED_on(sv);
-#endif
+# endif
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
sv_setpv(sv, pwent->pw_dir);
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
sv_setpv(sv, pwent->pw_shell);
-#ifndef INCOMPLETE_TAINTS
+# ifndef INCOMPLETE_TAINTS
/* pw_shell is tainted because user himself can diddle with it. */
SvTAINTED_on(sv);
-#endif
+# endif
-#ifdef PWEXPIRE
+# ifdef PWEXPIRE
PUSHs(sv = sv_mortalcopy(&PL_sv_no));
sv_setiv(sv, (IV)pwent->pw_expire);
-#endif
+# endif
}
RETURN;
#else
djSP;
#if defined(HAS_PASSWD) && defined(HAS_SETPWENT)
setpwent();
-# ifdef HAS_SETSPENT
+# ifdef HAS_SETSPENT
setspent();
-# endif
+# endif
RETPUSHYES;
#else
DIE(aTHX_ PL_no_func, "setpwent");
djSP;
#if defined(HAS_PASSWD) && defined(HAS_ENDPWENT)
endpwent();
-# ifdef HAS_ENDSPENT
+# ifdef HAS_ENDSPENT
endspent();
-# endif
+# endif
RETPUSHYES;
#else
DIE(aTHX_ PL_no_func, "endpwent");