📄 compat.h
字号:
/* * compat.h Compability library for systems that don't have some * of the routines that we would like to use... * * Version: cache.c 0.99 04-13-1999 jeff@apex.net */#ifndef _COMPAT_H#define _COMPAT_H#ifdef HAVE_GETSPNAM#if defined(M_UNIX) typedef struct passwd shadow_pwd_t;#define GET_SP_NAME(sp) ((sp)->pw_name)#define GET_SP_PWD(sp) ((sp)->pw_passwd)#else /* M_UNIX */ typedef struct spwd shadow_pwd_t;#define GET_SP_NAME(sp) ((sp)->sp_namp)#define GET_SP_PWD(sp) ((sp)->sp_pwdp)#define GET_SP_LSTCHG(sp) ((sp)->sp_lstchg)#define GET_SP_MIN(sp) ((sp)->sp_min)#define GET_SP_MAX(sp) ((sp)->sp_max)#define GET_SP_WARN(sp) ((sp)->sp_warn)#define GET_SP_INACT(sp) ((sp)->sp_inact)#define GET_SP_EXPIRE(sp) ((sp)->sp_expire)#endif /* M_UNIX */#else /* HAVE_GETSPNAM */typedef struct my_shadow_t { char *sp_namp; char *sp_pwdp; long int sp_lstchg; /* Date of last change. */ long int sp_min; long int sp_max; long int sp_warn; long int sp_inact; long int sp_expire;} shadow_pwd_t;#define GET_SP_NAME(sp) ((sp)->sp_namp)#define GET_SP_PWD(sp) ((sp)->sp_pwdp)#define GET_SP_LSTCHG(sp) ((sp)->sp_lstchg)#define GET_SP_MIN(sp) ((sp)->sp_min)#define GET_SP_MAX(sp) ((sp)->sp_max)#define GET_SP_WARN(sp) ((sp)->sp_warn)#define GET_SP_INACT(sp) ((sp)->sp_inact)#define GET_SP_EXPIRE(sp) ((sp)->sp_expire)#endif /* HAVE_GETSPNAM */#ifndef HAVE_FGETPWENTextern struct passwd *rad_fgetpwent(FILE *pwhandle);static inline struct passwd *fgetpwent(FILE *pw) { return rad_fgetpwent(pw);}#endif /* HAVE_FGETPWENT */#ifndef HAVE_FGETSPENTextern shadow_pwd_t *rad_fgetspent(FILE *sphandle);static inline shadow_pwd_t *fgetspent(FILE *sp) { return rad_fgetspent(sp);}#endif /* HAVE_FGETSPENT */#ifndef HAVE_FGETGRENTextern struct group *rad_fgetgrent(FILE *grhandle);static inline struct group *fgetgrent(FILE *gr) { return rad_fgetgrent(gr);}#endif /* HAVE_FGETGRENT */#endif /* _COMPAT_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -