Merge pull request #467 from alejandro-colomar/date_to_str
Have a single definition of date_to_str()
This commit is contained in:
18
src/chage.c
18
src/chage.c
@@ -90,7 +90,6 @@ static long expdate;
|
||||
|
||||
/* local function prototypes */
|
||||
static /*@noreturn@*/void usage (int status);
|
||||
static void date_to_str (char *buf, size_t maxsize, time_t date);
|
||||
static int new_fields (void);
|
||||
static void print_date (time_t date);
|
||||
static void list_fields (void);
|
||||
@@ -161,19 +160,6 @@ static /*@noreturn@*/void usage (int status)
|
||||
exit (status);
|
||||
}
|
||||
|
||||
static void date_to_str (char *buf, size_t maxsize, time_t date)
|
||||
{
|
||||
struct tm *tp;
|
||||
|
||||
tp = gmtime (&date);
|
||||
#ifdef HAVE_STRFTIME
|
||||
(void) strftime (buf, maxsize, "%Y-%m-%d", tp);
|
||||
#else
|
||||
(void) snprintf (buf, maxsize, "%04d-%02d-%02d",
|
||||
tp->tm_year + 1900, tp->tm_mon + 1, tp->tm_mday);
|
||||
#endif /* HAVE_STRFTIME */
|
||||
}
|
||||
|
||||
/*
|
||||
* new_fields - change the user's password aging information interactively.
|
||||
*
|
||||
@@ -207,7 +193,7 @@ static int new_fields (void)
|
||||
if (-1 == lstchgdate || lstchgdate > LONG_MAX / SCALE) {
|
||||
strcpy (buf, "-1");
|
||||
} else {
|
||||
date_to_str (buf, sizeof buf, (time_t) (lstchgdate * SCALE));
|
||||
date_to_str (sizeof(buf), buf, lstchgdate * SCALE);
|
||||
}
|
||||
|
||||
change_field (buf, sizeof buf, _("Last Password Change (YYYY-MM-DD)"));
|
||||
@@ -238,7 +224,7 @@ static int new_fields (void)
|
||||
if (-1 == expdate || LONG_MAX / SCALE < expdate) {
|
||||
strcpy (buf, "-1");
|
||||
} else {
|
||||
date_to_str (buf, sizeof buf, (time_t) (expdate * SCALE));
|
||||
date_to_str (sizeof(buf), buf, expdate * SCALE);
|
||||
}
|
||||
|
||||
change_field (buf, sizeof buf,
|
||||
|
20
src/passwd.c
20
src/passwd.c
@@ -135,7 +135,6 @@ static int new_password (const struct passwd *);
|
||||
|
||||
static void check_password (const struct passwd *, const struct spwd *);
|
||||
#endif /* !USE_PAM */
|
||||
static /*@observer@*/const char *date_to_str (time_t);
|
||||
static /*@observer@*/const char *pw_status (const char *);
|
||||
static void print_status (const struct passwd *);
|
||||
static /*@noreturn@*/void fail_exit (int);
|
||||
@@ -447,21 +446,6 @@ static void check_password (const struct passwd *pw, const struct spwd *sp)
|
||||
}
|
||||
#endif /* !USE_PAM */
|
||||
|
||||
static /*@observer@*/const char *date_to_str (time_t t)
|
||||
{
|
||||
static char buf[80];
|
||||
struct tm *tm;
|
||||
|
||||
tm = gmtime (&t);
|
||||
#ifdef HAVE_STRFTIME
|
||||
(void) strftime (buf, sizeof buf, "%m/%d/%Y", tm);
|
||||
#else /* !HAVE_STRFTIME */
|
||||
(void) snprintf (buf, sizeof buf, "%02d/%02d/%04d",
|
||||
tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900);
|
||||
#endif /* !HAVE_STRFTIME */
|
||||
return buf;
|
||||
}
|
||||
|
||||
static /*@observer@*/const char *pw_status (const char *pass)
|
||||
{
|
||||
if (*pass == '*' || *pass == '!') {
|
||||
@@ -478,14 +462,16 @@ static /*@observer@*/const char *pw_status (const char *pass)
|
||||
*/
|
||||
static void print_status (const struct passwd *pw)
|
||||
{
|
||||
char date[80];
|
||||
struct spwd *sp;
|
||||
|
||||
sp = getspnam (pw->pw_name); /* local, no need for xgetspnam */
|
||||
if (NULL != sp) {
|
||||
date_to_str (sizeof(date), date, sp->sp_lstchg * SCALE),
|
||||
(void) printf ("%s %s %s %lld %lld %lld %lld\n",
|
||||
pw->pw_name,
|
||||
pw_status (sp->sp_pwdp),
|
||||
date_to_str (sp->sp_lstchg * SCALE),
|
||||
date,
|
||||
((long long)sp->sp_min * SCALE) / DAY,
|
||||
((long long)sp->sp_max * SCALE) / DAY,
|
||||
((long long)sp->sp_warn * SCALE) / DAY,
|
||||
|
@@ -185,8 +185,6 @@ static bool sub_gid_locked = false;
|
||||
|
||||
|
||||
/* local function prototypes */
|
||||
static void date_to_str (/*@unique@*//*@out@*/char *buf, size_t maxsize,
|
||||
long int date);
|
||||
static int get_groups (char *);
|
||||
static /*@noreturn@*/void usage (int status);
|
||||
static void new_pwent (struct passwd *);
|
||||
@@ -213,28 +211,6 @@ static void move_mailbox (void);
|
||||
|
||||
extern int allow_bad_names;
|
||||
|
||||
static void date_to_str (/*@unique@*//*@out@*/char *buf, size_t maxsize,
|
||||
long int date)
|
||||
{
|
||||
struct tm *tp;
|
||||
|
||||
if (date < 0) {
|
||||
strncpy (buf, "never", maxsize);
|
||||
} else {
|
||||
time_t t = (time_t) date;
|
||||
tp = gmtime (&t);
|
||||
#ifdef HAVE_STRFTIME
|
||||
strftime (buf, maxsize, "%Y-%m-%d", tp);
|
||||
#else
|
||||
(void) snprintf (buf, maxsize, "%04d-%02d-%02d",
|
||||
tp->tm_year + 1900,
|
||||
tp->tm_mon + 1,
|
||||
tp->tm_mday);
|
||||
#endif /* HAVE_STRFTIME */
|
||||
}
|
||||
buf[maxsize - 1] = '\0';
|
||||
}
|
||||
|
||||
/*
|
||||
* get_groups - convert a list of group names to an array of group IDs
|
||||
*
|
||||
@@ -637,10 +613,8 @@ static void new_spent (struct spwd *spent)
|
||||
if (eflg) {
|
||||
/* log dates rather than numbers of days. */
|
||||
char new_exp[16], old_exp[16];
|
||||
date_to_str (new_exp, sizeof(new_exp),
|
||||
user_newexpire * DAY);
|
||||
date_to_str (old_exp, sizeof(old_exp),
|
||||
user_expire * DAY);
|
||||
date_to_str (sizeof(new_exp), new_exp, user_newexpire * DAY);
|
||||
date_to_str (sizeof(old_exp), old_exp, user_expire * DAY);
|
||||
#ifdef WITH_AUDIT
|
||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||
"changing expiration date",
|
||||
|
Reference in New Issue
Block a user