-diff -urN shadow-4.0.6.orig/src/chage.c shadow-4.0.6/src/chage.c
---- shadow-4.0.6.orig/src/chage.c 2004-11-18 15:47:10.970295408 +0100
-+++ shadow-4.0.6/src/chage.c 2004-11-18 21:36:19.617616944 +0100
+--- shadow-4.0.6/src/chage.c 2004-11-18 21:36:19.617616944 +0100
++++ shadow-4.0.16/src/chage.c 2006-06-08 00:30:20.837211299 +0300
@@ -84,7 +84,7 @@
extern int sp_dbm_mode;
#endif
expdays = -1;
else if ((expdays = strtoday (buf)) == -1)
return 0;
-@@ -279,7 +279,7 @@
+@@ -274,7 +274,7 @@
+ * password expiring or not.
*/
-
printf (_("Account expires\t\t\t\t\t\t: "));
-- if (expdays <= 0) {
+- if (expdays < 0) {
+ if (expdays == -1) {
printf (_("never\n"));
} else {
expires = expdays * SCALE;
-@@ -422,7 +422,11 @@
- case 'E':
- Eflg++;
- if (!isnum (optarg))
-- expdays = strtoday (optarg);
-+ if (strcmp (optarg, EPOCH_SHORT) == 0)
-+ expdays = -1;
-+ else
-+ expdays = strtoday (optarg);
-+
- else
- expdays = strtol (optarg, 0, 10);
- break;
+@@ -403,7 +403,10 @@
+ case 'E':
+ Eflg++;
+ if (!isnum (optarg))
+- expdays = strtoday (optarg);
++ if (strcmp (optarg, EPOCH_SHORT) == 0)
++ expdays = -1;
++ else
++ expdays = strtoday (optarg);
+ else
+ expdays = strtol (optarg, 0, 10);
+ break;